目录
题目描述
给出两个整数 M 和 N (
以及
),求每一个数码出现了多少次。
格式及样例
输入格式
第 1 行: 两个用空格分开的整数 M 和 N。
输出格式
第 1 行: 十个用空格分开的整数,分别表示数码 0…9 在序列中出现的次数。
输入输出样例
输入 #1 129 137
输出 #1 1 10 2 9 1 1 1 1 0 1
思路:遍历N ~ M,然后看每个数码出现几次
(此题很简单,这里我使用 sprintf 处理每一位)
AC代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
char a[10]; //存入数字
int flag[10]; //将0~9的出现次数存入
int main(void){
ll n,m; cin>>n>>m;
for(int i = n;i <= m; i++){
sprintf(a,"%d",i); //将i(%d的形式)存入a(%c的形式)
for(int j = 0;j < strlen(a); j++){
flag[a[j]-'0']++; //减去'0'使字符变成数字('1'-'0'= 1)
}
}
for(int i = 0;i < 10; i++){
cout<<flag[i]; //输出
if(i!=9) cout<<" "; //最后一位不能有空格
}
return 0;
}
总结:使用 sprintf 方便,而且便于理解。