c++求解,怎样计算1到n个数字的各位数字的数码之和?比如2016就是2+0+1+6,输入的n是正整数,输出的是小于等于n的所有数字的所有数码之和。c++
#include <iostream>
using namespace std;
// 计算一个正整数的各位数字之和
int digitSum(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
int main() {
int n;
cout << "请输入正整数n:" << endl;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += digitSum(i);
}
cout << "1到" << n << "的所有数字的所有数码之和为:" << sum << endl;
return 0;
}