给定任意一个数字,判断是不是水仙花数?
package com.example;
import java.util.Scanner;
public class test03 {
public static boolean flowers(int i){ //判断水仙花数的方法
int s=0;
int n=(i+"").length(); //数字转换为字符串
for (int k=1;k<=n;k++){ //循环处理数字串
int t1=(int)(i/Math.pow(10,k-1)); //截取数字串,从后往前
int t2=(int) Math.pow((t1%10),n); //提取最后一位数,计算其n次方
s+=t2;
}
if (s==i){ //满足水仙花数的判断条件
return true;
}else { //不满足水仙花数的判断条件
return false;
}
}
public static void main(String[] args) {
System.out.println("请输入要判断的水仙花数字");
Scanner scanner=new Scanner(System.in);
int num= scanner.nextInt();//从键盘接收行数
if (num<100) {
System.out.println("你输入的数字不符合!请输入大于100的数字");
Scanner sc=new Scanner(System.in);
int num1= sc.nextInt();//从键盘接收行数
if (flowers(num1)){
System.out.println(num1+"是水仙花数");
}else {
System.out.println(num1+"不是水仙花数!");
}
}
else if (num>100){
flowers(num);
System.out.println(num+"是水仙花数");
}
else {
System.out.println(num+"不是水仙花数!");
}
}
}
运行结果如下: