zoukankan      html  css  js  c++  java
  • (笔试题)最小的非“重复的数”

    题目:

    给一个定义:对一个整数,若其中存在相邻两位上的数字相同,则称其为“重复的数”;现给定一个正整数n,求不小于n的最小的非“重复的数”。

    思路:

    假设输入的数为n,则令m=n,

    分别取m的最低两位数字a,b,

    判断是否a==b,如果是说明是重复的数,那么递归调用n=m+1;考虑特殊情况,ab=99,产生进位后100仍未重复数,此时应该递归调用n=m+2;

    如果a!=b,则往前挪一位,即m=m/10,直至m/10=0为止,最后返回n。

    该思路也可以通过非递归来实现,详见代码。

    代码:

    #include <iostream>
    
    using namespace std;
    
    int calNonRepetitionNum(int n){
        if(n<10)
            return n+1;
    
        int a,b;
        int base=1;
        int m=n;
    
        while(m/10)
        {
            b=m%10;
            a=m/10%10;
            base*=10;
    
            if(a==b)
            {
                if(a==9)
                    return calNonRepetitionNum((m+2)*base/10);
                else
                    return calNonRepetitionNum((m+1)*base/10);
            }
            m/=10;
        }
    
        return n;
    }
    
    int calNonRepetitionNum_2(int n){
        if(n<10)
            return n+1;
        int a,b,m;
        int base;
        bool flag=true;
        while(flag){
            flag=false;
            m=n;
            base=1;
            while(m/10){
                a=m%10;
                b=m/10%10;
                base*=10;
                if(a==b){
                    if(a==9){
                        n=(m+2)*base/10;
                        flag=true;
                        break;
                    }
                    else{
                        n=(m+1)*base/10;
                        flag=true;
                        break;
                    }
                }
                m=m/10;
            }
        }
        return n;
    }
    
    int main()
    {
        cout << calNonRepetitionNum(99) << endl;
        cout << calNonRepetitionNum_2(88) << endl;
        return 0;
    }
    

      

  • 相关阅读:
    一段简单的js让png24兼容ie6,单张图片有效
    “按需加载”的应用
    前端....
    项目小结
    Ember初始化实例
    Emberjs 分页
    Emberjs搜索
    promise链式
    Emberjs路由
    Emberjs笔记
  • 原文地址:https://www.cnblogs.com/AndyJee/p/4740885.html
Copyright © 2011-2022 走看看