洛谷P1554-梦中的统计
![image-20230521205221493](https://img-blog.csdnimg.cn/img_convert/65bba12685808194a66bd56d543e897d.png)
#include <bits/stdc++.h>
using namespace std;
vector<int> fun(long long int n)
{
vector<int> temp;
while(n!=0)
{
temp.push_back(n%10);
n/=10;
}
return temp;
}
int main() {
int m,n;
int num[10] = {0};
vector<vector<int>> a;
cin>>m>>n;
for (int i = m; i <=n ; ++i) {
a.push_back(fun(i));
}
for(int i = 0;i<a.size();i++)
{
for (int j = 0; j < a[i].size(); ++j) {
switch (a[i][j]) {
case 0:
num[0]++;
break;
case 1:
num[1]++;
break;
case 2:
num[2]++;
break;
case 3:
num[3]++;
break;
case 4:
num[4]++;
break;
case 5:
num[5]++;
break;
case 6:
num[6]++;
break;
case 7:
num[7]++;
break;
case 8:
num[8]++;
break;
case 9:
num[9]++;
break;
}
}
}
for (int i = 0; i < 10; ++i) {
cout<<num[i]<<" ";
}
return 0;
}
- 首先定义一个把数的每一位拆出来的函数,拆出每一位后,存到一个vector中
- 把每一个数字都拆分,把每个数对应的vector数组都存入一个存储vector数组的vector数组
- 遍历每个vector数组的每一位,通过判断每位是0-9哪个数字进行++
方法还是挺巧妙的