看到標題java實現水仙花數,首先先要知道什么是水仙花數,具體了解一下
所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數
列如153=1*1*1+5*5*5+3*3*3 那么153就是水仙花數,首先是分析需要的功能,首先他是一個3位數。
那值一定在100-1000之間,必定要用到循環??捎胒or循環,while循環,do while 循環,其次是它需要滿足條件
“其各位數字立方和等于該數”,那么我們必須把他的各位的數字取出。我們在循環里做判斷,當數滿足條件就將這個數取出。
那么可做出如下流程圖。

根據流程圖,可得如下代碼。代碼幾種循環的方法都用的了。
package com.tjgx.lxb;
/*要求:100--1000的水仙花數
* 水仙花定義:水仙花數”是指一個三位數,其各位數字立方和等于該數
* **/
public class Daffodils {
public static void main(String[] args) {
System.out.println("用dowhile循環方法");
demo1();
System.out.println("用for循環方法");
demo2();
System.out.println("用while循環方法");
demo3();
}
//用dowhile 循環來做
public static void demo1() {
int i=100;
do{
int g=i%10; //取出個位數
int s=i/10%10; //取出十位數
int b=i/100; //取出百位數
if(g*g*g+s*s*s+b*b*b==i) {
System.out.println(i+"是水仙花數");
}
i++;
}while(i<1000);
}
//用for循環來做
public static void demo2() {
for(int j=100;j<1000;j++) {
int g=j%10; //取出個位數
int s=j/10%10; //取出十位數
int b=j/100; //取出百位數
if(g*g*g+s*s*s+b*b*b==j) {
System.out.println(j+"是水仙花數");
}
}
}
//用while循環來做
public static void demo3() {
int k=100;
while(k<1000) {
int g=k%10; //取出個位數
int s=k/10%10; //取出十位數
int b=k/100; //取出百位數
if(g*g*g+s*s*s+b*b*b==k) {
System.out.println(k+"是水仙花數");
}
k++;
}
}
}
運行結果如下圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。