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]+".");
        }
    }
}

 

posted @ 2025-05-22 19:44  XiaohuangTX  阅读(6)  评论(0)    收藏  举报