题目描述:
一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,
每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数
字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,
2,…,9。
输入:
给出表示书的总页码的整数n(1≤n≤2^31-1)
输出:
输出10行,在第k行输出页码中用到数字k-1 的次数,k=1,2,…,10。
样例输入:
11
样例输出:
1
4
1
1
1
1
1
1
1
1
分析:这道题就纯属考验你的思维能力(狗头),本人没有太强大的头脑,借鉴别人的,才明白不多说,直接放源码
源码:(有需要自取,如有更好办法,欢迎在评论区留言!)
include <stdio.h>
int main(void)
{
int b,n,i; int a[10]={0};//初始值都设为一 scanf("%d",&n); for(i=1;i<=n;i++){ b=i; //这一步也很重要,因为你用i直接参与运算的时候,i的值直接改变,就没法满足循环了 while(b>0){ //这个while循环至关重要,也不难理解 a[b%10]+=1; b=b/10; } } for(i=0;i<10;i++){ //输出就行了,i的值就是0-9,输出相应的次数 printf("%d\n",a[i]); } return 0;
}