丑数

#include<iostream>
using namespace std;
long long min(long long x1,long long y1,long long z1,long long w1)
{
    long long k1,k2;
    k1=min(x1,y1);
    k2=min(z1,w1);
    return min(k1,k2);
}
int main()
{
    long long a[6000],s;
    int i,x,y,z,w,n;
    i=1;
    x=y=z=w=1;
    a[1]=1;
    while(i<=5842)
    {
        s=min(a[x]*2,a[y]*3,a[z]*5,a[w]*7);
        if(s==a[x]*2)
        {
            x++;
        }
        if(s==a[y]*3)
        {
            y++;
        } 
        if(s==a[z]*5)
        {
            z++;
        }
        if(s==a[w]*7)
        {
            w++;
        }
        a[++i]=s;
    }
    while(cin>>n)
    {
        if(n==0)
        break;
        cout<<a[n]<<endl;
    }
}
原文地址:https://www.cnblogs.com/Leozi/p/10835103.html