给你一个数年份n,把1到n的每个年份都写出来连在一起,最后得到的是几位数?例如n=10,得到的数字是12345678910,因此是11位数。
输入格式:
首先输入一个整数T(1<=T<=10),表示测试组数。 每组测试输入一个整数n(1<=n<=10000)。
输出格式:
对于每组测试,在一行上输出把1到n的每个年份都写出来连在一起,最后得到的数据的位数。
输入样例:
2
10
1
输出样例:
11
1
#include <stdio.h>
int count(int n)
{
int m = 0;
int x = n;
while (x)
{
m++;
x /= 10;
}
int s = 0;
int b = 1;
for (int i = 1; i < m; i++)
{
s += i * b * 9;
b *= 10;
}
s += m * (n - b + 1);
return s;
}
int main()
{
int T, n;
scanf("%d", &T);
for (int i = 0; i < T; i++)
{
scanf("%d", &n);
printf("%d\n", count(n));
}
return 0;
}