链接:https://ac.nowcoder.com/acm/contest/6220/A

题目描述

牛牛想知道所有的长度为n的数中,各个位上的数字之和为m的这些数的和是多少呢。给定n和m,求这些数的和。

可以看到数据范围很小,可以考虑暴力解。

class Solution {
public:
    /**
     * 返回这样的数之和
     * @param n int整型 数的长度
     * @param m int整型 各个为之和
     * @return long长整型
     */
    long long sum(int n, int m) {
        // write code here
        long long ans = 0;
        for(int i=1;i<1e7;++i) { 
               int x=i;
            int tmp=0,cnt=0; // 储存每位的和,以及位数
            while(x) {
                tmp += x%10;
                x/=10;
                cnt++;
            }
            if(cnt==n&&tmp == m) ans+=i; //符合条件
        }
        return ans;
    }
};