题意:题目设定在1到10000之内,有一些数被成为无聊的数(如果这个数字中存在相同数字,包括只有一个数字的数,如1,2,3)。输入一个n,求从1到n这个范围内,无聊的数的数字个数的总和。(注意!是数字的个数(1111是4个数字)!!!!)
题解:范围是到10000,所以最多有四位数,所以一个数字(1,11,111,1111)的数字总和就是(1+2+3+4=10)个。所以我们只需要计算出该数前的数字总数,再加上当前数的数字总和,就可以得到答案了!(在这里,我使用的字符串输入,这样只需要求串长,而不是用循环得到位数,会简便一点)
ACcode:
int main()
{
int t;
cin >> t;
while (t--)
{
int ans = 0;
string a;
cin >> a;
ans = (a[0] - '0' - 1) *10;
for (int i = 1; i <= a.size(); i++)
ans += i;
cout << ans<<endl;
}
return 0;
}