这是求 1∼n 的数位之和的代码,但是很神奇看不懂,求大佬解答一下
#include<bits/stdc++.h>
using namespace std;
int main() {
auto f2 = []( unsigned n ) -> unsigned {
register unsigned tot = 0;
while( n ) {
tot += n % 10;
n /= 10;
}
return tot;
};
unsigned n;
cin >> n;
vector<unsigned> tot( n );
for( unsigned i = 0, j; i < n; ++i ) {
cin >> j;
for( register unsigned k = 1; k <= j; ++k )
tot[ i ] += f2( k );
}
for( register unsigned i = 0; i < n; ++i )
cout << tot[ i ] << endl;
}