给定一个正整数n,求小于等于n的正整数的每个数的各位数字之和。
如n=5时,1+2+3+4+5=15,输出15;
n=12时,1+2+3+4+5+6+7+8+9+1+1+1+1+2=51,输出51。
代码:
#include <iostream>
using namespace std;
int main(){
int n,a=0;
cin >> n;
for(int i = 1;i <= n;i ++){
int s = i;
while(s){
a += s% 10;
s /= 10;
}
}
cout << a;
return 0;
}
其实这道题的本质就是数位分离,只要掌握了数位分离和循环嵌套就基本能做对了