hdu1058 丑数
递归:humble[t]=min(2*humble[i],3*humble[j],5*humble[k],7*humble[l]);
import java.util.Scanner; public class hdu1058 { public static void main(String[] args) { long[] biao = new long[5844]; biao[1] = 1; int j = 1; int k = 1; int l = 1; int n = 1; for (int i = 2; i < 5844; i++) { biao[i] = Math.min(Math.min(biao[j]*2, biao[k]*3),Math.min(biao[l]*5, biao[n]*7)); if (biao[i]==biao[j]*2){ j++; } if (biao[i]==biao[k]*3){ k++; } if (biao[i]==biao[l]*5){ l++; } if (biao[i]==biao[n]*7){ n++; } } Scanner sc = new Scanner(System.in); while (sc.hasNext()){ int nn = sc.nextInt(); if (nn==0){ break; } String str = "th"; if (nn%10==1){ if (nn%100!=11){ str = "st"; } } if (nn%10==2){ if (nn%100!=12){ str = "nd"; } } if (nn%10==3){ if (nn%100!=13){ str = "rd"; } } System.out.println("The "+nn+str+" humble number is "+biao[nn]+"."); } } }