最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Java打印出所有的水仙花數(shù)的解決方法

 更新時(shí)間:2026年01月08日 08:43:42   作者:牛肉胡辣湯  
水仙花數(shù)也被稱為超完全數(shù)字不變數(shù)、自戀數(shù)、自冪數(shù),是指一個(gè)?n?位數(shù)?(n≥3),它的每個(gè)位上的數(shù)字的?n?次冪之和等于它本身,本文將通過(guò)?Java?語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的程序,用于找出并打印所有三位數(shù)中的水仙花數(shù),需要的朋友可以參考下

前言

水仙花數(shù)(Narcissistic number)也被稱為超完全數(shù)字不變數(shù)、自戀數(shù)、自冪數(shù),是指一個(gè) n 位數(shù) (n≥3),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。對(duì)于三位數(shù)而言,如果一個(gè)三位數(shù)的各位數(shù)字的立方和等于這個(gè)數(shù)本身,那么這個(gè)數(shù)就是水仙花數(shù)。

例如,153 是一個(gè)水仙花數(shù),因?yàn)?\(1^3 + 5^3 + 3^3 = 153\)。

本文將通過(guò) Java 語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的程序,用于找出并打印所有三位數(shù)中的水仙花數(shù)。

實(shí)現(xiàn)思路

  1. 確定范圍:由于水仙花數(shù)是三位數(shù),因此我們的查找范圍是 100 到 999。
  2. 分解數(shù)字:對(duì)于每一個(gè)三位數(shù),我們需要將其分解為百位、十位和個(gè)位。
  3. 計(jì)算立方和:計(jì)算這三個(gè)位置上數(shù)字的立方和。
  4. 比較結(jié)果:如果計(jì)算出的立方和等于原數(shù),則該數(shù)為水仙花數(shù)。
  5. 輸出結(jié)果:將找到的所有水仙花數(shù)打印出來(lái)。

Java代碼實(shí)現(xiàn)

public class NarcissisticNumber {
    public static void main(String[] args) {
        // 遍歷100到999之間的所有數(shù)字
        for (int num = 100; num <= 999; num++) {
            if (isNarcissistic(num)) {
                System.out.println(num);
            }
        }
    }
 
    /**
     * 判斷一個(gè)數(shù)是否為水仙花數(shù)
     * @param num 待判斷的數(shù)
     * @return 如果是水仙花數(shù)返回true,否則返回false
     */
    private static boolean isNarcissistic(int num) {
        int originalNum = num;
        int sum = 0;
 
        // 分解數(shù)字并計(jì)算立方和
        while (num > 0) {
            int digit = num % 10;
            sum += Math.pow(digit, 3);
            num /= 10;
        }
 
        // 判斷立方和是否等于原數(shù)
        return sum == originalNum;
    }
}

運(yùn)行結(jié)果

運(yùn)行上述代碼后,程序?qū)⑤敵鏊械娜粩?shù)水仙花數(shù):

153
370
371
407

下面是一個(gè)用Java編寫的示例代碼,用于找出并打印所有的水仙花數(shù)(即三位數(shù)中,其各個(gè)位上的數(shù)字立方和等于該數(shù)本身的數(shù))。

public class NarcissisticNumber {
    public static void main(String[] args) {
        // 遍歷所有三位數(shù),從100到999
        for (int number = 100; number <= 999; number++) {
            if (isNarcissistic(number)) {
                System.out.println(number);
            }
        }
    }
 
    /**
     * 判斷一個(gè)數(shù)是否是水仙花數(shù)
     * @param number 要判斷的數(shù)
     * @return 如果是水仙花數(shù)返回true,否則返回false
     */
    public static boolean isNarcissistic(int number) {
        int originalNumber = number;
        int sum = 0;
 
        // 提取每一位數(shù)字并計(jì)算立方和
        while (number > 0) {
            int digit = number % 10;
            sum += Math.pow(digit, 3);
            number /= 10;
        }
 
        // 判斷立方和是否等于原數(shù)
        return sum == originalNumber;
    }
}

代碼解釋:

  1. 主方法 main?:
  • 使用一個(gè) ??for?? 循環(huán)遍歷從100到999的所有三位數(shù)。
  • 對(duì)于每個(gè)數(shù),調(diào)用 ??isNarcissistic?? 方法判斷它是否是水仙花數(shù)。
  • 如果是水仙花數(shù),則打印該數(shù)。
  1. 輔助方法 isNarcissistic?:
  • 接受一個(gè)整數(shù) ??number?? 作為參數(shù)。
  • 保存原始數(shù) ??originalNumber??,以便后續(xù)比較。
  • 使用 ??while?? 循環(huán)提取每一位數(shù)字,并計(jì)算其立方和。
  • 最后,判斷立方和是否等于原始數(shù),如果是則返回 ??true??,否則返回 ??false??。

運(yùn)行結(jié)果:

運(yùn)行上述代碼后,輸出將是所有的水仙花數(shù):

153
370
371
407

這些數(shù)都是三位數(shù),并且它們各自的各位數(shù)字的立方和等于該數(shù)本身。希望這個(gè)示例對(duì)你有幫助!如果有任何問(wèn)題或需要進(jìn)一步的解釋,請(qǐng)隨時(shí)告訴我。當(dāng)然可以!下面是一個(gè)詳細(xì)的Java程序,用于找出并打印所有的水仙花數(shù)。

什么是水仙花數(shù)?

水仙花數(shù)(Narcissistic number)是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,153 是一個(gè)水仙花數(shù),因?yàn)椋?53 = 1^3 + 5^3 + 3^3

Java代碼實(shí)現(xiàn)

public class NarcissisticNumber {
    public static void main(String[] args) {
        // 遍歷所有三位數(shù),從100到999
        for (int num = 100; num <= 999; num++) {
            if (isNarcissistic(num)) {
                System.out.println(num);
            }
        }
    }
 
    // 判斷一個(gè)數(shù)是否是水仙花數(shù)
    public static boolean isNarcissistic(int num) {
        int originalNum = num;
        int sum = 0;
 
        // 提取每一位數(shù)字并計(jì)算立方和
        while (num > 0) {
            int digit = num % 10; // 取出個(gè)位數(shù)
            sum += Math.pow(digit, 3); // 計(jì)算立方并累加
            num /= 10; // 去掉個(gè)位數(shù)
        }
 
        // 判斷立方和是否等于原數(shù)
        return sum == originalNum;
    }
}

代碼解釋

  1. 主方法 main?:
  • 使用一個(gè) ??for?? 循環(huán)遍歷所有三位數(shù),從100到999。
  • 對(duì)于每一個(gè)數(shù),調(diào)用 ??isNarcissistic?? 方法判斷它是否是水仙花數(shù)。
  • 如果是水仙花數(shù),則打印該數(shù)。
  1. 輔助方法 isNarcissistic?:
  • 接受一個(gè)整數(shù) ??num?? 作為參數(shù)。
  • 將原數(shù)保存在 ??originalNum?? 中,以便后續(xù)比較。
  • 初始化 ??sum?? 為0,用于存儲(chǔ)各位數(shù)字的立方和。
  • 使用 ??while?? 循環(huán)提取每一位數(shù)字:
  • ??digit = num % 10??:取出當(dāng)前數(shù)的個(gè)位數(shù)。
  • ??sum += Math.pow(digit, 3)??:計(jì)算該位數(shù)字的立方并累加到 ??sum??。
  • ??num /= 10??:去掉當(dāng)前數(shù)的個(gè)位數(shù)。
  • 最后,判斷 ??sum?? 是否等于 ??originalNum??,如果相等則返回 ??true??,否則返回 ??false??。

運(yùn)行結(jié)果

運(yùn)行上述程序,輸出將是所有三位數(shù)中的水仙花數(shù):

153
370
371
407

這些數(shù)都是滿足條件的水仙花數(shù)。希望這個(gè)解釋對(duì)你有幫助!如果有任何問(wèn)題或需要進(jìn)一步的說(shuō)明,請(qǐng)隨時(shí)告訴我。

以上就是使用Java打印出所有的水仙花數(shù)的解決方法的詳細(xì)內(nèi)容,更多關(guān)于Java打印水仙花數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

合阳县| 民勤县| 肇州县| 得荣县| 交城县| 滕州市| 日喀则市| 名山县| 安顺市| 清原| 天台县| 凤城市| 尼勒克县| 陈巴尔虎旗| 定结县| 山丹县| 清丰县| 电白县| 鹤壁市| 调兵山市| 曲水县| 洪江市| 曲阜市| 阜宁县| 高雄县| 名山县| 凤翔县| 将乐县| 中卫市| 青岛市| 偃师市| 新巴尔虎左旗| 甘谷县| 贵德县| 葫芦岛市| 鹤庆县| 凤山市| 大连市| 海兴县| 定远县| 子长县|