Java入門:水仙花演算法

PHPer技術棧發表於2022-05-12

案例:水仙花

需求:在控制檯輸出所有的“水仙花數”

分析:

  1. 三位數的個位數字如何求
    371 1就是原始數字對10進行取餘運算的結果
    371 % 10 = 1
  2. 三位數的百位數字如何求
    371 / 100 = 3
    371 3就是原始數字除以100的結果(整除)
  3. 三位數的十位數字如何求
    371 / 10 = 37
    371 371透過除以10.可以將7移動到個位上(整數)
    37 % 10= 7
    37透過對10進行取餘運算可以得到最後一位的值7
    371 / 10 % 10 =7
  • 思考:任毫數字的指定位上的數值如問求
    先使用整除操作將要求的數字移動到個位上,再使用取餘操作取出最後一位上的值
    123456789
    先整繪10000得到12345,再對10取餘得到5

需求:在控制檯輸出所有的“水仙花數”

分析:

  1. 輸出所有的水仙花數必然要使用到迴圈,遍歷所有的三位數,三位數從100開始,到999結束
    for (int i = 100; i cw 999; i++) ( _ )
  2. 不是每個三位數都是水仙花數,因此需要判定,滿足條件的數字才進行輸出
    4£(執行的限制條件)(▁)
  3. 判定條件是將三位數中的每個數值取出來,計算立方和後與原始數字比較是否相等
    42(?+?+?==原數)(輸出原數)
  4. 在計算之前獲取三位數中每個位上的值
    int a =原數的個位;
    int b=原數的十位;
    int c=原數的百位;
    1f(aaa+bbb+ccc==鼠數)(
    輸出原數
    1

    示例

    public static void main(String[] args) {
     int count = 0;
     for (int i = 100; i < 1000; i++) {
         int a = i % 10;
         int b = i / 10 % 10;
         int c = i / 100 % 10;
         if ((a * a * a + b * b * b + c * c * c) == i) {
             System.out.println(i);
             count++;
         }
     }
     System.out.println("水仙花個數"+count);
    }
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章