#include <stdio.h>
/*
作者:
厦门理工学院
计算机与信息工程学院 FnLock
时间:2017年11月11日21:17:01
程序描述:
第四届程序设计大赛 统计数字
Time Limit:1000MS Memory Limit:65536K
Total Submit:436 Accepted:201
Description
对于一本共有n页的书,书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6页用数字6表示,而不是06或006等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,…,9。
给定表示书的总页码的10进制整数n,编程计算书的全部页码中分别用到多少次数字0,1,2,…,9。
Input
只有1行,给出表示书的总页码的整数n ( 1 <= n <= 100)
Output
输出共有10行,分别表示0,1,2,…,9出现的次数。
Sample Input
11
Sample Output
1
4
1
1
1
1
1
1
1
1
Source
*/
//将数组中的每一个元素赋值为0
void arrZero(int arr[])
{
int i;
for(i=0;i<10;i++)
{
arr[i]=0;
}
}
//打印数组
void arrPrint(int arr[],int n)
{
int i;
for(i=0;i<10;i++)
{
printf("%d\n",arr[i]);
}
}
int main(void)
{
int n;
scanf("%d",&n);//输入书有几页
int arr[10];//定义一个整形数组来记录数字出现次数
arrZero(arr);//将数组中的每一个元素赋值为0
int i,j;
int temp;
for(i=1;i<=n;i++)
{
j=i;
while(j>0)
{
temp=j%10;
j/=10;
switch(temp)//看看当前数字是几
{ //相应加一
case 0: arr[0]++; break;
case 1: arr[1]++; break;
case 2: arr[2]++; break;
case 3: arr[3]++; break;
case 4: arr[4]++; break;
case 5: arr[5]++; break;
case 6: arr[6]++; break;
case 7: arr[7]++; break;
case 8: arr[8]++; break;
case 9: arr[9]++; break;
}
}
}
arrPrint(arr,n);//打印数组
return 0;
}
1057第四届程序设计大赛 统计数字
最新推荐文章于 2022-10-30 19:54:25 发布