2014百度面试题目---“求比指定整数大且最小的不重复数”解答
题目:给定任意一个正整数,求比这个数大且最小的“不重复数”,“不重复数”的含义是相邻两位不相同,例如1101是重复数,而1201是不重复数。
代码:
#include <iostream>
using namespace std;
bool isthat(int x);
int main( )
{
int n;
cin>>n;
//while(cin>>n)
//{
int m = n+1; //满足条件,比n大
cout<<"m = n+1"<<m<<endl<<endl;
while(1)
{
int x = m;
//判断是否为不重复数
bool yes = isthat(x);
if(yes)
{
cout<<x<<endl;
break;
}
m++;
}//逐个往上加
// }//while(cin>>n)
return 0;
}
bool isthat(int x)
{
int m = x;
int x1 = m%10; //取余
m = m/10; //取商
int x2;
while(m)
{
x2 = m%10;
if(x1 == x2)
return false; //重复数
x1 = x2;
m = m/10;
}
return true; //不重复数
}

浙公网安备 33010602011771号