整型数组处置算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”[2014百度笔试题]
整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”[2014百度笔试题]
给定任意一个正整数,求比这个数大且最小的“不重复数”,“不重复数”的含义是相邻两位不相同,
测试代码:
测试结果就不贴了,有兴趣的朋友可以试试。
给定任意一个正整数,求比这个数大且最小的“不重复数”,“不重复数”的含义是相邻两位不相同,
例如1101是重复数,1231是不重复数。
分析:
从这个正整数+1开始,往后取整数转换为字符串,进行判断,如果相邻2个都不相等,那就是我们要找的数了。
实现代码如下:
//给定任意一个正整数,求比这个数大且最小的“不重复数”“不重复数”的含义是相邻两位不相同, //例如1101是重复数,1231是不重复数。 int GetMinNum(int nNum) { char Temp[20]; int nLen; for (int i = nNum+1; ;i++) { itoa(i, Temp, 10); nLen = strlen(Temp); for (int j=0; j<nLen-1; j++) { //有重复,跳出循环。 if (Temp[j]==Temp[j+1]) { break; } } //没有重复,返回i。 if (j==nLen-1) { return i; } } return 0; }
测试代码:
int main() { int nTemp; int nRet; while(1) { scanf("%d", &nTemp); if (nTemp==9999) { break; } else { nRet = GetMinNum(nTemp); cout << nRet << endl; } } return 0; }
测试结果就不贴了,有兴趣的朋友可以试试。
转载请注明原创链接:http://blog.****.net/wujunokay/article/details/12178719
- 1楼jiamin135793分钟前
- 性能太低 比如输入111111111