###### tags: `CPE`
# *2022/05/24 CPE_04*
## 題目:

### 方法I(C++11以後適用)
```
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <cmath>
using namespace std;
int main(void) {
long long num_1, num_2, temp,fix_num_1,fix_num_2;
int zero, one, two, three, four, five, six, seven, eight, nine, test;
while (true) {
num_1 = num_2 = temp = 0;
zero = one = two = three = four = five = six = seven = eight = nine = 0;
cin >> fix_num_1 >> fix_num_2;//Load into num_1 & num_2
if (fix_num_1 > fix_num_2) {
num_1 = fix_num_2;
num_2 = fix_num_1;
}
else {
num_1 = fix_num_1;
num_2 = fix_num_2;
}
if (num_1 == 0 && num_2 == 0) {
break;
}
else {
temp = num_1;
vector <long long> num_list;
//Generate a number list
while (temp <= num_2) {
num_list.push_back(temp);
temp = temp + 1;
}
for (int j = 0; j < num_list.size(); j++) {
string str_temp = to_string(num_list[j]);
int str_long = 0;
while (str_long < str_temp.size()) {
if (str_temp[str_long] == '0') {
zero++;
}
else if (str_temp[str_long] == '1') {
one++;
}
else if (str_temp[str_long] == '2') {
two++;
}
else if (str_temp[str_long] == '3') {
three++;
}
else if (str_temp[str_long] == '4') {
four++;
}
else if (str_temp[str_long] == '5') {
five++;
}
else if (str_temp[str_long] == '6') {
six++;
}
else if (str_temp[str_long] == '7') {
seven++;
}
else if (str_temp[str_long] == '8') {
eight++;
}
else if (str_temp[str_long] == '9') {
nine++;
}
str_long++;
}
}
cout << zero << " " << one << " " << two << " " << three << " " << four << " " << five << " " << six << " " << seven << " " << eight << " " << nine << endl;
}
}
return 0;
}
```
### 方法II
```
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <cmath>
using namespace std;
int bit_num(long long);
int main(void) {
long long num_1, num_2, temp, bit_temp,fix_num_1,fix_num_2;
int zero, one, two, three, four, five, six, seven, eight, nine;
int check;
while (true) {
num_1 = num_2 = temp = bit_temp = 0;
zero = one = two = three = four = five = six = seven = eight = nine = check = 0;
cin >> fix_num_1 >> fix_num_2;//Load into num_1 & num_2
if (fix_num_1 > fix_num_2) {
num_1 = fix_num_2;
num_2 = fix_num_1;
}
else {
num_1 = fix_num_1;
num_2 = fix_num_2;
}
temp = num_1;
vector <long long> num_list;
if (num_1 == 0 && num_2 == 0) {
break;
}
else {
//Generate a number list
while (temp <= num_2) {
num_list.push_back(temp);
temp = temp + 1;
}
for (int j = 0; j < num_list.size(); j++) {
bit_temp = bit_num(num_list[j]);
temp = num_list[j];
for (int k = 0; k < bit_temp; k++) {
check = temp % 10;
if (check == 0) {
zero++;
}
else if (check == 1) {
one++;
}
else if (check == 2) {
two++;
}
else if (check == 3) {
three++;
}
else if (check == 4) {
four++;
}
else if (check == 5) {
five++;
}
else if (check == 6) {
six++;
}
else if (check == 7) {
seven++;
}
else if (check == 8) {
eight++;
}
else if (check == 9) {
nine++;
}
temp = temp / 10;
}
}
cout << zero << " " << one << " " << two << " " << three << " " << four << " " << five << " " << six << " " << seven << " " << eight << " " << nine << endl;
}
}
return 0;
}
//Get the bit of number
int bit_num(long long number) {
long long temp_number;
temp_number = 0;
int bit = 0;
while (temp_number <= number) {
temp_number = pow(10, bit);
bit++;
}
bit = bit - 1;
return bit;
}
```