华为编程大赛--查找最大不重复数

来源:互联网 发布:上海知柚网络公司规模 编辑:程序博客网 时间:2024/05/17 23:12

2、查找最大的不重复数( 30分)

 问题描述

如果一个数字十进制表达时,不存在连续两位相同,则称之为“不重复数”。例如, 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 <cstdio>#include <cstring>unsigned int GetNotRepeatNum(unsigned int lValue){char buf[8];while(lValue++){sprintf(buf,"%u",lValue);int ok = 1;for(unsigned int i=0;i<strlen(buf)-1;i++){if(buf[i] == buf[i+1])ok=0;}if(ok)break;}return lValue;}int main(){int n;while(1 == scanf("%u",&n)){printf("%u\n",GetNotRepeatNum(n));}return 0;}


 

0 0
原创粉丝点击