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; }
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号