突然发现自己被这道题目给羞辱了。。。。
#include<stdio.h>
#include<string.h>
int num[5845];
int min(int a, int b , int c, int d)
{
int x = a<b?a:b;
int y = c<d?c:d;
return x<y?x:y;
}
void find()
{
num[1]=1;
int i;
int x,y,m,n;
x=y=m=n;
for(i=2;i<5843;i++)
{
num[i]=min(num[x]*2,num[y]*3,num[m]*5,num[n]*7);
if(num[i]==num[x]*2) l1++;
if(num[i]==num[y]*3) l2++;
if(num[i]==num[m]*5) l3++;
if(num[i]==num[n]*7) l4++;
}
}
int main()
{
find();
int n;
while(scanf("%d",&n),n)
{
if(n % 10 == 1 && n%100 != 11)
printf("The %dst humble numble is %d.\n",n,num[n]);
else if(n % 10 == 2 && n%100 != 12)
printf("The %dnd humble numble is %d.\n",n,num[n]);
else if(n % 10 == 3 && n%100!=13)
printf("The %drd humble numble is %d.\n",n,num[n]);
else
printf("The %dth humble numble is %d.\n",n,num[n]);
}
return 0;
}