zoukankan      html  css  js  c++  java
  • 剑指OFFER之丑数

    题目描述:

    把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。
    习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

    输入:

    输入包括一个整数N(1<=N<=1500)。

    输出:

    可能有多组测试数据,对于每组数据,
    输出第N个丑数。

    样例输入:
    3
    样例输出:
    3

    Code:
    #include <iostream>
     
    using namespace std;
     
    int minVal(int a,int b,int c){
        int ans;
        ans=a<b?a:b;
        return ans<c?ans:c;
    }
     
    int main()
    {
        int UglyNum[2000];
        int index_2,index_3,index_5;
        int N,cnt,maxVal;
        while(cin>>N){
            index_2=index_3=index_5=1;
            UglyNum[1]=1;
            maxVal=1;
            cnt=1;
            while(cnt<=N){
                while(UglyNum[index_2]*2<=maxVal)
                    ++index_2;
                while(UglyNum[index_3]*3<=maxVal)
                    ++index_3;
                while(UglyNum[index_5]*5<=maxVal)
                    ++index_5;
                UglyNum[++cnt]=minVal(UglyNum[index_2]*2,UglyNum[index_3]*3,UglyNum[index_5]*5);
                maxVal=UglyNum[cnt];
            }
            cout<<UglyNum[N]<<endl;
        }
        return 0;
    }
     
    /**************************************************************
        Problem: 1214
        User: lcyvino
        Language: C++
        Result: Accepted
        Time:40 ms
        Memory:1520 kb
    ****************************************************************/
  • 相关阅读:
    springcloud有哪些特征
    可变参数
    递归
    增强的for循环
    Scanner对象
    注释
    Markdown常见的样式语法
    副本机制
    消费者分区分配策略
    SpringMVC 登陆判断
  • 原文地址:https://www.cnblogs.com/Murcielago/p/4202720.html
Copyright © 2011-2022 走看看