题目背景
Bessie 处于半梦半醒的状态。过了一会儿,她意识到她在数数,不能入睡。
题目描述
Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码(0到9):每一个数码在计数的过程中出现过多少次?
给出两个整数 M 和 N
输入格式
第 1 行: 两个用空格分开的整数 M和 N。
输出格式
第 1 行: 十个用空格分开的整数,分别表示数码 0到 9在序列中出现的次数。(从M到N)
输入输出样例
输入 #1复制
129 137
输出 #1复制
1 10 2 9 1 1 1 1 0 1
#include<stdio.h>
int main(){
int M,N,i,a[10],j,temp,k;
a[10]={0};
scanf("%d%d",&M,&N);
for(i=M;i<=N;i++){
k=i;
while(k!=0){
temp=k%10;
switch(temp){
case(0):a[0]++;break;
case(1):a[1]++;break;
case(2):a[2]++;break;
case(3):a[3]++;break;
case(4):a[4]++;break;
case(5):a[5]++;break;
case(6):a[6]++;break;
case(7):a[7]++;break;
case(8):a[8]++;break;
case(9):a[9]++;break;
}
k/=10;
}
}
printf("%d %d %d %d %d %d %d %d %d %d",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
return 0;
}
#include<stdio.h>
int main(){
int M,N,i,a[10]={0},j,temp,k;
scanf("%d%d",&M,&N);
for(i=M;i<=N;i++){
k=i;
while(k!=0){
temp=k%10;
switch(temp){
case(0):a[0]++;break;
case(1):a[1]++;break;
case(2):a[2]++;break;
case(3):a[3]++;break;
case(4):a[4]++;break;
case(5):a[5]++;break;
case(6):a[6]++;break;
case(7):a[7]++;break;
case(8):a[8]++;break;
case(9):a[9]++;break;
}
k/=10;
}
}
printf("%d %d %d %d %d %d %d %d %d %d",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
return 0;
}
用switch...case干啥啊,直接 a[k%10]++;不香吗?
#include<stdio.h>
int main(){
int M,N,i,a[10]={0},k;
scanf("%d%d",&M,&N);
for(i=M;i<=N;i++){
k=i;
while(k!=0){
a[k%10]++;
k/=10;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}