• 剑指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
    ****************************************************************/
  • 相关阅读:
    React 生命周期
    css 多行文本以...代替
    微信JSSDK配置文件说明
    zepto阻止事件冒泡
    PHP 图片处理PNG颜色丢失
    React 学习笔记(一)
    webpack webpack-dev-server使用指南
    为什么需要使用模块打包工具?
    如何实现微信公户绑定公众号业务
    iOS 手势
  • 原文地址:https://www.cnblogs.com/Murcielago/p/4202720.html
Copyright © 2020-2023  润新知