鉴于数据最高只有七位数,通过判断数位,逐位判断即可完成本题。
(运行很快,打得手疼)
//Stand up for the faith!
#include
using namespace std;
long judge(int i,int p,int j)
{
int a=0;
if(j==1)
{
if(i%10==p) a+=1;
}
else if(j==2)
{
if(i%10==p) a+=1;
if(i/10%10==p) a+=1;
}
else if(j==3)
{
if(i%10==p) a+=1;
if(i/10%10==p) a+=1;
if(i/100%10==p) a+=1;
}
else if(j==4)
{
if(i%10==p) a+=1;
if(i/10%10==p) a+=1;
if(i/100%10==p) a+=1;
if(i/1000%10==p) a+=1;
}
else if(j==5)
{
if(i%10==p) a+=1;
if(i/10%10==p) a+=1;
if(i/100%10==p) a+=1;
if(i/1000%10==p) a+=1;
if(i/10000%10==p) a+=1;
}
else if(j==6){
if(i%10==p) a+=1;
if(i/10%10==p) a+=1;
if(i/100%10==p) a+=1;
if(i/1000%10==p) a+=1;
if(i/10000%10==p) a+=1;
if(i/100000%10==p) a+=1;
}
else if(j==7){
if(i%10==p) a+=1;
if(i/10%10==p) a+=1;
if(i/100%10==p) a+=1;
if(i/1000%10==p) a+=1;
if(i/10000%10==p) a+=1;
if(i/100000%10==p) a+=1;
if(i/1000000%10==p) a+=1;
}
return a;
}
int main()
{
int n,x,wei,sum=0;
n=read();
x=read();
for(int i=1;i<=n;i++)
{
if(i>=1000000) wei=7;
else if(i>=0&&i<10) wei=1;
else if(i>=10&&i<100) wei=2;
else if(i>=100&&i<1000) wei=3;
else if(i>=1000&&i<10000) wei=4;
else if(i>=10000&&i<100000) wei=5;
else if(i>=100000&&i<1000000) wei=6;
sum+=judge(i,x,wei) ;
}
cout< return 0;
}