您好,登錄后才能下訂單哦!
看到標題java實現水仙花數,首先先要知道什么是水仙花數,具體了解一下
所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數
列如153=1*1*1+5*5*5+3*3*3 那么153就是水仙花數,首先是分析需要的功能,首先他是一個3位數。
那值一定在100-1000之間,必定要用到循環。可用for循環,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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。