此题数据不行啊。 本人较菜,于是想了想。。。 发现这题仔(打)细(一)想(个)想(表)还是能做的。 附上打表代码:
#include<bits/stdc++.h>
using namespace std;
int main(void){
int n,x,ans=0;
cin>>n>>x;
for(int i=1;i<=n;i++){
if(i<10){
if(i==x) ans++;
}
if(i>=10&&i<100){
if(i%10==x) ans++;
if(i/10==x) ans++;
}
if(i>=100&&i<1000){
if(i%10==x) ans++;
if(i%100/10==x) ans++;
if(i/100==x) ans++;
}
if(i>=1000&&i<10000){
if(i%10==x) ans++;
if(i%100/10==x) ans++;
if(i%1000/100==x) ans++;
if(i/1000==x) ans++;
}
if(i>=10000&&i<100000){
if(i%10==x) ans++;
if(i%100/10==x) ans++;
if(i%1000/100==x) ans++;
if(i%10000/1000==x) ans++;
if(i/10000==x) ans++;
}
if(i>=100000&&i<1000000){
if(i%10==x) ans++;
if(i%100/10==x) ans++;
if(i%1000/100==x) ans++;
if(i%10000/1000==x) ans++;
if(i%100000/10000==x) ans++;
if(i/100000==x) ans++;
}
if(i==1000000){
if(x==1) ans++;
if(x==0) ans+=6;
}
}
printf("%d",ans);
return 0;
}
数据建议加强