问题描述??
水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身,例如:13+53+3^3=153。
输出100-999之内的所有水仙花
public class NarcissisticNumber {
/**
* 输出100-999之内的所有水仙花
* @param args
*/
public static void main(String[] args) {
for (int number = 100; number < 1000; number++) {
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == number) {
System.out.println(number + "是水仙花数");
}
}
}
}
用户输入数字,判断是否为水仙花数
import java.util.Scanner;
public class NarcissisticNumber {
/**
* 用户输入数字,判断是否为水仙花数
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个100~1000以内的数字,判断是否为水仙花数:");
int number = sc.nextInt();
if (number > 99 && number < 1000) {
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == number) {
System.out.println(number + "是水仙花数");
} else {
System.out.println(number + "不是水仙花数");
}
} else {
System.out.println("输入错误,请输入一个100~1000以内的数字");
}
}
}
水仙花数升级版-练习使用Math.pow函数
import java.util.Scanner;
public class NarcissisticNumber {
/**
* 用户输入数字,判断是否为水仙花数--升级版--练习使用Math.pow函数
*
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个100~1000以内的三位数字,判断是否为水仙花数:");
int number = sc.nextInt();
if (number > 99 && number < 1000) {
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
if (Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3) == number) {
System.out.println(number + "是水仙花数");
} else {
System.out.println(number + "不是水仙花数");
}
} else {
System.out.println("输入错误,请输入一个100~1000以内的三位数字");
}
}
}