查找最小不重复数
问题描述
如果一个数字十进制表达时,不存在连续两位相同,则称之为“不重复数”。
例如, 105 、 1234 和 12121 都是“不重复数”,而 11 、 100 和 1225 不是。
给定一个正整数 A ,返回大于 A 的最小“不重复数”。 A 小于 100000
要求实现函数
unsigned int GetNotRepeatNum(unsigned int lValue)
【输入】 lValue : 给定的数字,返回大于该值的最小不重复数
【输出】 无
【返回】大于 iValue 的最小不重复数
示例
输入: iValue =54
返回: 56
输入: iValue =10
返回: 12
输入: iValue =98
返回: 101
输入: iValue =21099
问题描述
如果一个数字十进制表达时,不存在连续两位相同,则称之为“不重复数”。
例如, 105 、 1234 和 12121 都是“不重复数”,而 11 、 100 和 1225 不是。
给定一个正整数 A ,返回大于 A 的最小“不重复数”。 A 小于 100000
要求实现函数
unsigned int GetNotRepeatNum(unsigned int lValue)
【输入】 lValue : 给定的数字,返回大于该值的最小不重复数
【输出】 无
【返回】大于 iValue 的最小不重复数
示例
输入: iValue =54
返回: 56
输入: iValue =10
返回: 12
输入: iValue =98
返回: 101
输入: iValue =21099
返回: 21201
#include<iostream>
using namespace std;
bool isNotRepeatNum(unsigned int lValue){
char str[30];
itoa(lValue,str,10);
int length=strlen(str);
for(int i=0; i<length-1; ++i){
if(str[i]==str[i+1])
return false;
}
return true;
}
unsigned int GetNotRepeatNum(unsigned int lValue){
while(1){
++lValue;
if(isNotRepeatNum(lValue) )
break;
}
return lValue;
}
int main(){
int iValue;
while(cin>>iValue)
cout<<GetNotRepeatNum(iValue)<<endl;
return 0;
}