第三场(A-位数求和)
链接:https://ac.nowcoder.com/acm/contest/6220/A
来源:牛客网
题目描述:
牛牛想知道所有的长度为n的数中,各个位上的数字之和为m的这些数的和是多少呢。给定n和m,求这些数的和。
输入
2,3
输出
63
说明:12 + 21 +30 = 63
备注:
解题思路:
暴力遍历,判断各数的各位数字之和是否等于m,满足条件的累加即可。
代码:
class Solution { public: /** * 返回这样的数之和 * @param n int整型 数的长度 * @param m int整型 各个为之和 * @return long长整型 */ long long sum(int n, int m) { // write code here long long res = 0; int start = pow(10, n - 1), end = pow(10, n) - 1; for(int i = start; i <= end; ++i) { if(fun(i) == m) res += i; } return res; } long long fun(int k) { long long res = 0; while(k) { res += k % 10; k /= 10; } return res; } };