连年(年份)
给你一个数年份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 main() {
int t, n, i, j;
scanf("%d", &t); // 输入测试组数
while (t--) { // 循环遍历每组测试数据
scanf("%d", &n); // 输入年份
long long sum = 0;
for (i = 1; i <= n; i++) {
int num = i;
while (num > 0) { // 计算当前数位数
sum++;
num /= 10;
}
}
printf("%lld\n", sum); // 输出总位数
}
return 0;
}