#include<iostream> #include<stdio.h> #include<stdlib.h> using namespace std; #define N 5850 long int s[N]; long int min(long int a,long int b,long int c,long int d){ c=c<d?c:d; a=a<b?a:b; return a<c?a:c; } void main(){ memset(s,0,sizeof(s)); int count=0; int ca,cb,cc,cd; ca=cb=cc=cd=0; s[0]=1; for(long int i=1;i<N;++i){ s[i]=min(s[ca]*2,s[cb]*3,s[cc]*5,s[cd]*7); if(s[i]==s[ca]*2) ++ca; if(s[i]==s[cb]*3) ++cb; if(s[i]==s[cc]*5) ++cc; if(s[i]==s[cd]*7) ++cd; } int n; while(cin>>n) { if(n==0) break; else { if(n%10==1&&n%100!=11) printf("The %dst humble number is %lld.\n",n,s[n-1]); else if(n%10==2&&n%100!=12) printf("The %dnd humble number is %lld.\n",n,s[n-1]); else if(n%10==3&&n%100!=13) printf("The %drd humble number is %lld.\n",n,s[n-1]); else printf("The %dth humble number is %lld.\n",n,s[n-1]); } } }
杭电ACM 第1058题
最新推荐文章于 2021-04-18 23:14:19 发布