java中的水仙花数问题,打印的“水仙花数”

java中的水仙花数问题,打印的“水仙花数”

我是一个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();

}

}

代码运行结果如下: