下面是一个求水仙花束解答:
public class ForDemo5 {
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){
//输出x
System.out.println("x:"+x);
}
}
}
} 水仙花数(Narcissistic number),又称超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯特朗数(Armstrong number)。
它是指一个 n 位数(n≥3 ),它的每个数位上的数字的 n 次幂之和,等于它本身(例如:1^3 + 5^3+ 3^3 = 153)(详见互动百科)。严格来说,三位数的3次幂数才能被视为水仙花数
需求:在控制台输出所有的"水仙花数";
分析:水仙花是什么:水仙花:指的是三位数
水仙花的特点:三位数中个位的立方和加上十位上数据的立方和加上百位上的数据的立方和=该数据本身
153 = 3^3+5^3+1^ = 153
1)使用for循环,遍历所有的三位数:变量是x
2)如何获取三位上的每一位上的数据呢(重点)
int ge = x % 10 ;
int shi = x /10 %10;
int bai = x /10 /10 %10
int qina = x /10/10/10
public class ForDemo1
{public static void main(String[] args) {//1)
水仙花数告诉了我们的一个范围
for(int x = 100; x <=999 ; x ++){//2)获取该数据对应的没一个位上的数据
int ge = x % 10 ;int shi = x /10 %10 ;int bai = x /10/10 %10;//
判断:如果得到每一个位上的数据的立方和x相等的话,那么就认为就是水仙花
if(x==ge*ge*ge+shi*shi*shi+bai*bai*bai){//输出xSystem.out.println("x:"+x);}}}
}
|
|