80 分代码:
#include <cstdio>
#include <algorithm>
#include <cstring>
#define int long long
using namespace std;
inline int wei(int a){
int w=0;
while(a){
a/=10;
++w;
}
return w;
}
inline int Pow(int x,int y){
if(y==0) return 1;
int c=1;
for(int i=1;i<=y;i++){
c*=x;
}
return c;
}
int num[10],n;
//void dfs(int a){
// if(a==n) return ;
// int w=wei(a);
// for(int i=0;i<w;i++){
// //int l=a/Pow(10,i)%10;
// int l=a%10;
// ++num[l];
// a/=10;
// }
// dfs(a+1);
//}
signed main(){
//int n;
scanf("%lld",&n);
//dfs(1);
for(int i=1;i<=n;i++){
int w=wei(i);
for(int j=0;j<w;j++){
int l=i/Pow(10,j)%10;
num[l]++;
}
}
for(int i=0;i<10;i++){
printf("%lld\n",num[i]);
}
}
90 分代码:
#include <cstring>
#include <string>
using namespace std;
int y[10];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
string s=to_string(i);
int l=s.size();
for(int j=0;j<l;j++){
if(s[j]=='0') y[0]++;
else if(s[j]=='1')y[1]++;
else if(s[j]=='2')y[2]++;
else if(s[j]=='3') y[3]++;
else if(s[j]=='4')y[4]++;
else if(s[j]=='5')y[5]++;
else if(s[j]=='6') y[6]++;
else if(s[j]=='7')y[7]++;
else if(s[j]=='8')y[8]++;
else if(s[j]=='9') y[9]++;
}
}
printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d",y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9]);
return 0;
}