hdu 1058 (DP)

#include<stdio.h>
int main()
{
    int n,i,j;
//freopen("e://2.txt","r",stdin);
int a[4]={0},b[4]={2,3,5,7};
int str[6000];


for(i=1;i<5842;i++)
{
int t=0;
str[0]=1;
for(j=1;j<4;j++)
{
if(str[a[j]]*b[j]<str[a[t]]*b[t])
t=j;
}
str[i]=str[a[t]]*b[t];
for(j=0;j<4;j++)
{
if(str[i]==str[a[j]]*b[j])
a[j]++;
}
}
while(scanf("%d",&n)&&n)
{
       printf("The %d",n);
  if(n%10==1&&n%100!=11) printf("st ");
  else  if(n%10==2&&n%100!=12) printf("nd ");
    else if(n%10==3&&n%100!=13) printf("rd ");
            else printf("th ");
printf("humble number is %d.\n",str[n-1]);
}
return 0;
}

posted @ 2011-08-06 15:47  skyming  阅读(168)  评论(0编辑  收藏  举报