算法实现题 1-1 统计数字问题

问题描述:
一本书的页码从自然数 1 开始顺序编码直到自然数 n。书的页码按照通常的习惯编排,
每个页码都不含多余的前导数字 0。例如,第 6 页用数字 6 表示,而不是 06 或 006 等。数
字计数问题要求对给定书的总页码 n,计算出书的全部页码中分别用到多少次数字 0,1,
2,…,9。
编程任务:
给定表示书的总页码的 10 进制整数 n (1≤n≤109
) 。编程计算书的全部页码中分别用
到多少次数字 0,1,2,…,9。
数据输入:
输入数据由文件名为 input.txt 的文本文件提供。
每个文件只有 1 行,给出表示书的总页码的整数 n。
结果输出:
程序运行结束时,将计算结果输出到文件 output.txt 中。输出文件共有 10 行,在第 k 行
输出页码中用到数字 k-1 的次数,k=1,2,…,10。
输入文件示例 输出文件示例
input.txt output.txt
11 1
4
1
1
1
1
1
1
1
1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int n,i,x,y;
    int a[10];
    memset(a,0,sizeof(a));
    scanf("%d",&n);
    for(i=1; i<=n; i++)
    {
        x=i;
        while(x)
        {
            y=x%10;
            a[y]++;
            x=x/10;
        }
    }
    for(i=0; i<10; i++)printf("%d\n",a[i]);
    return 0;
}


版权声明:本文为weixin_43886377原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。