poj 2247
经典题,注意输出
代码:
#include<iostream> #include<fstream> using namespace std; long long a[5843]; long long min(long long s,long long t){ if(s<t) return s; return t; } void read(){ // ifstream cin("in.txt"); int i,j,k; int n1,n2,n3,n4; n1=1;n2=1;n3=1;n4=1; a[1]=1; for(i=2;i<=5842;i++) { a[i]=min(min(a[n1]*2,a[n2]*3),min(a[n3]*5,a[n4]*7)); if(a[i]==a[n1]*2) n1++; if(a[i]==a[n2]*3) n2++; if(a[i]==a[n3]*5) n3++; if(a[i]==a[n4]*7) n4++; } j=0; char c[5]; while(cin>>i) { j++; if(i==0) return; if(j%10==1&&j%100!=11) strcpy(c,"st"); else if(j%10==2&&j%100!=12) strcpy(c,"nd"); else if(j%10==3&&j%100!=13) strcpy(c,"rd"); else strcpy(c,"th"); cout<<"The "<<i<<c<<" humble number is "<<a[i]<<"."<<endl; } } int main(){ read(); return 0; }