java求水仙花数

似水流年201415 2014-01-21 12:47:01
/** 题目:打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。* 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 * 1.程序分析:利用for循环控制100-999个数,
每个数分解出个位,十位,百位。*/
public class ShuiXianHuaDemo{
public static void main(String args[]){
for(int i = 100 ; i < 999 ; i++){
int geWei,shiWei,baiWei;
baiWei = i / 100;
shiWei = (i - baiWei * 100) / 10;
geWei = i - baiWei * 100 - shiWei * 10;
//if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei){
if(i == Math.pow(geWei,3) + Math.pow(shiWei,3) + Math.pow(baiWei,3)){
//注:求N次方可以用java.lang.Math.pow(a, b);
System.out.println(i);
}
}
}
}
...全文
523 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
另一花生 2014-01-30
  • 打赏
  • 举报
回复
一般用C写的比较多
tony4geek 2014-01-28
  • 打赏
  • 举报
回复
循环计算判断。
  • 打赏
  • 举报
回复
就是遍历一边就好了啊
飞舞的锄头 2014-01-24
  • 打赏
  • 举报
回复
只有遍历全部...
public class ShuiXianHuaDemo{
public static void main(String args[]){
for(int i = 100 ; i < 999 ; i++){
int geWei,shiWei,baiWei;
baiWei = i /100;
shiWei = i/10%10;
geWei = i%100%10;
//System.out.println(baiWei+" "+shiWei+" "+geWei);
//if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei){
if(i == Math.pow(geWei,3) + Math.pow(shiWei,3) + Math.pow(baiWei,3)){
//注:求N次方可以用java.lang.Math.pow(a, b);
System.out.println(i);
}
}
}
}
玮G 2014-01-22
  • 打赏
  • 举报
回复
Math真没怎么研究,学习了!
卡卡吉利 2014-01-22
  • 打赏
  • 举报
回复
我除了遍历找不出第二种方法
姜小白- 2014-01-22
  • 打赏
  • 举报
回复
谢楼主分享
fw347969680 2014-01-22
  • 打赏
  • 举报
回复
额。自问自答?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧