数数字

#include <stdio.h>
#include <math.h>
// 请先独立完成,如果有困难可以翻阅本书代码仓库中的答案,但一定要再次独立完成。
// “抓住主要矛盾”——始终把学习、实验的焦点集中在最有趣的部分。如果直观地解决方案行得通,就不必追究其背后的原理。

/**
【题目】数数字
把前n(n≤10000)个整数顺次写在一起:123456789101112…数一数0~9各出现多少次
(输出10个整数,分别是0,1,…,9出现的次数)。
*/


/**
【分析】运用好%号和/号
*/

int main()
{
    int n;
    int a[10];
    memset(a,0,sizeof(a));
    scanf("%d",&n);

    if (n>10000 || n<0) {
        printf("input error");
        return;
    }

    int i;
    for (i=1;i<=n;i++) {
        int j = i;
        while(j>0) {
            int x = j % 10;
            a[x] ++ ;
            j = j / 10;
        }
    }


    for (i = 0;i<10;i++) {
        printf("%d的数量为%d\n",i,a[i]);
    }

    return 0;
}


posted @ 2018-03-17 15:22  TBHacker  阅读(464)  评论(0编辑  收藏  举报