PAT B1023 组个最小数(C++)

PAT甲级目录 | PAT乙级目录

题目描述

B1023 组个最小数

解题思路

记录每个数字出现的次数,先输出第一个非零的最小数字,剩余的顺序输出

易错点

  • 如果用排序,要排除 0 在首位的情况

代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main(){
int num[10] = {0}, min_not_zero = -1;
for(int i = 0; i < 10; i++){
cin >> num[i];
if(min_not_zero == -1 && i > 0 && num[i] > 0){
min_not_zero = i;
num[i]--;
}
}
cout << min_not_zero;
for(int i = 0; i < 10; i++){
while(num[i]--) cout << i;
}
return 0;
}