在其他地方上学的,那里过的了,但在这只能过前三个,玄关求调
#include<iostream>
#include<cstring>
using namespace std;
#define MAXN 10010
int num[MAXN];
int getn(int l,int r){
int ans=0;
for(int i=l;i>=r;i--)
ans=ans*10+num[i];
return ans;
}
int pow10(int n){
int ans=1;
while(n--)ans*=10;
return ans;
}
int work(int n,int x){
if(!n)return 0;
int ans=0,len=0;
while(n){
num[++len]=n%10;
n/=10;
}
for(int i=len-!x;i>0;i--){
if(i<len){
if(x)ans+=getn(len,i+1)*pow10(i-1);
else ans+=(getn(len,i+1)-1)*pow10(i-1);
}
if(num[i]==x)ans+=getn(i-1,1)+1;
else if(num[i]>x)ans+=pow10(i-1);
else ans+=0;
}
return ans;
}
int main(){
int a,b;
cin>>a>>b;
for(int i=0;i<=9;i++)
cout<<(long long)(work(b,i)-work(a-1,i))<<" ";
return 0;
}