天将降大任于斯人也,必先盗其QQ,封其微博,收其wife,夺其手机。让其静心学习java!
需求:在控制台输出所有的“水仙花数”
分析:
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身
举例:153就是一个水仙花数
153 = 1*1*1+5*5*5+3*3*3
A:三位数其实是告诉我们范围
B:通过for循环我们就可以实现获取每一个三位数
但是麻烦的是如何获取这个三位数的个,十,百位上的数据
我们如何获取一个数据的个,十,百位上的数据呢?
假设有一个数据:153
个:153%10 = 3
十:153/10%10 = 15%10 = 5
百:153/10/10%10 = 1%10 = 1
千:x/10/10/10%10
C:让个*个*个+十*十*十+百*百*百的和该数据比较
如果相同,就把该数据在控制台输出。
class ForDemo6{
public static void main(String[] args){
//三位数其实是告诉我们范围
for(int x = 100;x <= 999;x++){
int ge = x % 10;
int shi = x / 10 % 10;
int bai = x/10 / 10 % 10;
if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)){
System.out.println(x);
}
}
}
}