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; //不重复数 }