第三场(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;
    }
};
全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务