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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 静水★流深 中级黑马   /  2015-6-11 08:28  /  231 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
  
public class  Prog3{
  
    public static void main(String[] args){
  
        for(int i=100;i<1000;i++){
  
            if(isLotus(i))
  
                System.out.print(i+" ");
  
        }
  
        System.out.println();
  
    }
  
    //判断水仙花数
  
    private static boolean isLotus(int lotus){
  
        int m = 0;
  
        int n = lotus;
  
        int sum = 0;
  
        m = n/100;
  
        n   -= m*100;
  
        sum = m*m*m;
  
        m = n/10;
  
        n -= m*10;
  
        sum += m*m*m + n*n*n;
  
        if(sum==lotus)
  
            return true;
  
        else
  
            return false;
  
        }
  
}
  

1 个回复

正序浏览
抢沙发,消灭零回复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马