Hdu 1058 Humble Number(未)

超时。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <set>
#include <algorithm>
using namespace std;
int main()
{
    set<double>t;
//set<int>::iterator it;
    int a[4]= {2,3,5,7};
    double num[5842];
    int c=0;
    t.insert(1);
    while(c<=5842)
    {
        double x=*t.begin();
        t.erase(x);
        for(int i=0; i<4; i++)
            t.insert(x*a[i]);
        num[c++]=x;
    }
//for(int i=0;i<5842;i++) printf("%.0f ",num[i]);
    int n;
    while(cin>>n&&n)
    {
        if(n%10==1&&n%100!=11)
        {
            printf("The %dst humble number is %.0f.\n",n,num[n-1]);
        }
        else if(n%10==2&&n%100!=12)
        {
            printf("The %dnd humble number is %.0f.\n",n,num[n-1]);
        }
        else if(n%10==3&&n%100!=13)
        {
            printf("The %drd humble number is %.0f.\n",n,num[n-1]);
        }
        else
        {
            printf("The %dth humble number is %.0f.\n",n,num[n-1]);
        }
    }
    return 0;
}

 

posted @ 2016-02-25 16:40  cherry_yue  阅读(24)  评论(0)    收藏  举报