1. 程式人生 > 其它 >java除法取整_水仙花數的判斷(JAVA)

java除法取整_水仙花數的判斷(JAVA)

技術標籤:java除法取整

水仙花數的判斷(JAVA)

使用者輸入一個數,判斷是否是"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。

題目分析

  • 水仙花數是一個三位數。
  • 將使用者輸入的三位數拆分成為單獨的個位、十位、百位。
  • 對三個數字分別進行三次方運算,然後對運算後的三個數進行求和。
  • 如果運算得到的結果與使用者輸入的三位數相等,則說明該數為水仙花數,如果不等則說明不是。

程式碼分析

  1. 鍵盤輸入需要用到Scanner,Scanner是JDK中封裝的一個類,該類的職責就是接收鍵盤的輸入值,並儲存到程式的變數中,體現了程式和使用者的互動功能。

(1)匯入的包為:

import java.util.Scanner;

(2)建立Scanner物件

Scanner scanner = new Scanner(System.in);
  1. 如何得到拆分後的三位數呢?
  • 在Java中,算術運算子/(除)是通過除法之後取整。例如5/2,在數學中是等於2.5,但是在Java中是等於2的,後面的0.5會自動捨棄。
  • 算術運算子%(百分號)是進行取餘操作。例如5%2,類似為5÷2=2···1,所以得到的結果為1。
    所以得到的三位數分別可以表示為:
//對10作除法然後取餘得到的數為個位數
int g = num%10;
//對10作除法得到一個兩位數,然後對10再取餘得到個位數         
int s = (num/10)%10;
//對100作整除得到一個數,即為百位數    
int b = num/100;
  1. 通過if語句進行判斷個位數、十位數和百位數的總和是否與使用者輸入的三位數是否相等。
if(sum == num){
	System.out.println("該數為水仙花數!");
}else{
	System.out.println("該數不是水仙花數!");
}

詳細程式碼如下

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("請輸入一個三位數:");
        int num = sc.nextInt();
        int g = num%10;      //得到個位數
        int s = (num/10)%10; //得到十位數
        int b = num/100;     //得到百位數
        int sum = (g*g*g)+(s*s*s)+(b*b*b);  //得到總和
        //判斷是否相等
        if(sum == num){      //若相等    
            System.out.println("該數為水仙花數!");
        }else                //若不等
            System.out.println("該數不為水仙花數!");
    }
}

執行結果

68398107e673287356728a0ec241247d.png
作者:萌猩
連結地址:https://blog.csdn.net/qq_44894916/article/details/110448872
來源:CSDN