A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15068019542 初级黑马   /  2018-10-9 15:34  /  710 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是一个求水仙花束解答:
        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);}}}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马