首頁 > 其他

java中的水仙花數問題,列印的「水仙花數」

2019-12-10 07:36:57

我是一個java的初學者,遇到了一個水仙花數的問題,給總結一下,便於初學者研究。

1

首先先要知道什麼是水仙花數:知道水仙花數的規則:所謂「水仙花數」是指一個三位數,其各位數位立方和等於該數

2

例如:153是一個「水仙花數」,因為153=1的三次方+5的三次方+3的三次方。

3

首先看到這個問題最開始我也沒有思路,後來看到了水仙花數問題的流程圖,

就想到了要線分離變數。


4

分離變數的方法


5

判斷一個三位數,其各位數位立方和等於該數


6

整體程式碼:

package Apri8;

import java.util.*;

public class waterFlower {

private static int i1;

private static int i2;

private static int i3;

    //這個方法範圍時能是100~1000,因為我只定義了三個變數,只能分離三位數!

public static void flower(int bounder){

for(int i=100;i<bounder;i++){

int num1 = i / 100;

int num2 = i % 100 / 10;

int num3 = i % 10;

int sum = num1*num1*num1 + num2*num2*num2 + num3*num3*num3;

if(i == sum){

System.out.print(i+" ");

}

}

}

//判斷是否是水仙花數

public static void judge(int num){

i1 = num / 100;

i2 = num % 100 / 10;

i3 = num % 10;

int sum = i1*i1*i1+i2*i2*i2+i3*i3*i3;

if(num == sum){

System.out.println(num + " 是水仙花數!");

}else{

System.out.println(num+" 不是水仙花數!");

}

   

}

public static void main(String[] args) {

//鍵盤輸入

Scanner sc = new Scanner(System.in);

System.out.print("請輸入範圍 100 ~ ");

int input1 = sc.nextInt();//你要輸入的範圍

flower(input1);//列印水仙花數方法

System.out.println("n請輸入一個數 三位數: ");

int input2 = sc.nextInt();

judge(input2);//判斷水仙花數方法

sc.close();

}

}




7

程式碼執行結果如下:



IT145.com E-mail:sddin#qq.com