关于#c++#的问题,如何解决?

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;
}