大意:
把n(n<=10000)个整数顺序写在一起,求0~9分别出现多少次
Sample Input
2
3
13
Sample Output
0 1 1 1 0 0 0 0 0 0
1 6 2 2 1 1 1 1 1 1
分析:
水题不要想得太复杂,用最简单的知识就可以AC。复杂的语法反到易错而臃肿。
使用char[]
存储数字列,用#include<algorithm>
中的count()
函数计算每个字符出现的次数。
传送门→懒癌的福音——algorithm头文件函数全集
提交链接→UVa-1225
代码:
#include <bits/stdc++.h> //万能头文件
using namespace std;
int main() {
int n; cin >> n; while(n--) {
stringstream ss ; //实现整型、字符型的相互转化
int num; cin >> num;
char a[40000] ;
for(int i = 1; i <= num; i++) ss << i;
ss >> a ;
int len = strlen(a) ; //字符数组长度,
for(char i = '0'; i <= '9'; i++)
cout << count(a,a+len,i) << (i=='9' ? "\n" : " "); //字符0-9在数组中出现的次数
}
return 0 ;
}