给你一个数年份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;
}

 

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部