
我是一个java的初学者,遇到了一个水仙花数的问题,给总结一下,便于初学者研究。
首先先要知道什么是水仙花数:知道水仙花数的规则:所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
首先看到这个问题最开始我也没有思路,后来看到了水仙花数问题的流程图,
就想到了要线分离变量。
分离变量的方法
判断一个三位数,其各位数字立方和等于该数
整体代码:
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 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(); } } 代码运行结果如下:
