水仙花数
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
0
-
描述
-
请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。-
输入
-
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
输入0表示程序输入结束。
输出
-
如果n是水仙花数就输出Yes
否则输出No
样例输入
-
153 154 0
样例输出
-
Yes No
-
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
思路:
题目是直接输入数据,当输入0的时候停止输入数据。所以我用了while(sc.hasNaxt)来循环输入。再处理数据,将结果数据放在结果数组中,等数据全部输入的时候再输出结果。以下是我的代码,大家可以参考参考。有什么问题可以留言。
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int count = 0;
int[] aa = new int[100];
while(sc.hasNext()){//循环输入数据
int a = sc.nextInt();
if(a == 0){
break;
}
int b = a/100;//分解数字
int c = a%100/10;
int d = a%10;
if(a == b*b*b+c*c*c+d*d*d){//把结果放在结果数组中
aa[count] = 1;
}else {
aa[count] = 0;
}
count++;
}
for(int i=0;i<count;i++){//输出结果
if(aa[i] == 1){
System.out.println("Yes");
}else{
System.out.println("No");
}
}
}
}