水仙花

題目描述

春天是鮮花的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣定義的: “水仙花數”是指一個三位數,它的各位數字的立方和等於其本身,比如:153=1^3+5^3+3^3。 現在要求輸出所有在m和n範圍內的水仙花數。

輸入描述:

輸入數據有多組,每組佔一行,包括兩個整數m和n(100 ≤ m ≤ n ≤ 999)。

輸出描述:

對於每個測試實例,要求輸出所有在給定範圍內的水仙花數,就是說,輸出的水仙花數必須大於等於m,並且小於等於n,如果有多個,則要求從小到大排列在一行內輸出,之間用一個空格隔開;
如果給定的範圍內不存在水仙花數,則輸出no;

每個測試實例的輸出佔一行。

分析:該題的難點並不在於水仙花邏輯的實現,而在於按照規定的輸出格式進行輸出,嘗試了很多方法,最後發現必須得先將結果放到一個字符緩衝區中,然後判斷進行輸出。

代碼如下:

import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuilder result = new StringBuilder("");
        while(sc.hasNext()){
            int m = sc.nextInt();
            int n = sc.nextInt();

            for(int i=m;i<=n;i++){
                int a = i/100;
                int b = i/10-a*10;
                int c = i-a*100-b*10;
                if (i==a*a*a+b*b*b+c*c*c){
                   if(result.toString().equals("")){
                       result.append(i);
                   }else{
                       result.append(" ").append(i);
                   }
                }

            }
            if(result.toString().equals("")){
                System.out.println("no");
            }else{
                System.out.println(result);
            }

        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章