本文主要是介绍菜鸟杯” hdu 4151 I The Special Number,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
暴力预处理所有数,,然后二分查找,,查找时包含负数,,,,
#include<iostream>
#include<string.h>
using namespace std;
int a[10000000];
int b[10];
int main()
{ int i,j;
int tot=1;
for(i=1;i<=10000000;++i)
{ memset(b,0,sizeof(b));
j=i;
while(j)
{ if(b[j%10]!=1) b[j%10]=1;
else break;
j/=10;
}
if(j==0) a[tot++]=i;
}
int n;
while(cin>>n)
{ if(n<=1) {cout<<"0"<<endl;continue;}
int st=1,ed=tot-1;//这一点需要注意在所有符合的数中进行查找,,
int res;
while(st<=ed)
{ int mid=(st+ed)/2;
if(a[mid]<n)
{res=mid;
st=mid+1;
}
else ed=mid-1;
}
cout<<res<<endl;
}return 0;
}
这篇关于菜鸟杯” hdu 4151 I The Special Number的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!