牛客编程巅峰赛S1第3场 - 青铜&白银 A.位数求和

-
题意:求所有\(n\)位数每位之和等于\(m\)的数的和.
-
题解:数据范围非常小,我们可以直接暴力枚举\(t\)到\(10*t\)的所有数字,逐位分解判断即可.
-
代码:
class Solution { public: /** * 返回这样的数之和 * @param n int整型 数的长度 * @param m int整型 各个为之和 * @return long长整型 */ long long sum(int n, int m) { // write code here n--; int t=1; long long ans=0; long long cnt=0; while(n--){ t*=10; } for(int i=t;i<t*10;++i){ int tmp=i; cnt=0; while(tmp){ cnt+=tmp%10; tmp/=10; } if(cnt==m) ans+=i; } return ans; } };
𝓐𝓬𝓱𝓲𝓮𝓿𝓮𝓶𝓮𝓷𝓽 𝓹𝓻𝓸𝓿𝓲𝓭𝓮𝓼 𝓽𝓱𝓮 𝓸𝓷𝓵𝔂 𝓻𝓮𝓪𝓵
𝓹𝓵𝓮𝓪𝓼𝓾𝓻𝓮 𝓲𝓷 𝓵𝓲𝓯𝓮

浙公网安备 33010602011771号