黑马程序员技术交流社区

标题: 终于知道水仙花数是什么鬼了? [打印本页]

作者: 2119391569    时间: 2015-9-1 22:35
标题: 终于知道水仙花数是什么鬼了?
/*
需求:在控制台输出所有的”水仙花数”
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
*/
//水仙花数
class FlowerTest {
        //主函数可以保障该类的独立运行
        public static void main(String[] args) {
                        int count = 0;
                for(int x = 100;x <= 999;x++) {
                        int ge = x % 10;
                        int shi = x / 10 % 10;
                        int bai = x / 10 / 10 % 10;
                        if(ge*ge*ge+shi*shi*shi+bai*bai*bai == x) {
                                //水仙花的个数
                                System.out.println(x);
                                count++;
                        }
                }
                System.out.println("count="+count);
        }
}

作者: zhaoji12342000    时间: 2015-9-1 22:52
才学习完 刚开始也是一头雾水
作者: forjunjian    时间: 2015-9-1 23:12
都搞不懂为啥弄个这种名字,直接上方法不是挺好么
作者: 迷茫不堪的年纪    时间: 2015-9-1 23:18
举例不错,虽然目前还没学到,至少可以根据举例看出一点。
作者: zlsucceed    时间: 2015-9-1 23:37
public class Demo{
public static void main(String[] args){
     int count=0;
     for(int x=100;x<1000;x++)
    int ge=x%10;
    int shi=x/10%10;
    int bai=x/100%10;
if(x==ge*ge*ge+shi*shi*shi+bai*bai*bai){
        count++;
}
System.out.println("count:"count);
}
}
作者: 15706025762    时间: 2015-9-1 23:44
666666666666666666
作者: 丶古街老巷    时间: 2015-9-1 23:44
加油吧↖(^ω^)↗
作者: 话不多先生00    时间: 2015-9-7 22:26
加油............
作者: Tangjw    时间: 2015-9-7 22:38
一共就4个,是不是?
作者: 我张云杰    时间: 2015-9-7 22:40
厉害,赞赞赞
作者: kuikui    时间: 2015-9-7 22:47
开始也不懂,也是学完才懂得..
作者: 史世锋    时间: 2015-9-8 19:38
package com.itheima;

public class Test012
{

        /**
         * 需求:在控制台输出所有的”水仙花数”
         * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
         * 举例:153就是一个水仙花数。
         * 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
         *
         * 思路:1、分别求出这个数百位、十位、个位上的数字
         *                 2、判断这个数是否与百位、十位、个位上的数字的三次幂之和相等。
         * @param args
         */
        public static void main(String[] args)
        {
                //定义三个参数,存放百位、十位、个位上的数字
                int hundredsPlace, tensPlace, onesPlace;
               
                for(int num = 100; num < 1000; num ++)
                {
                        //得到这个三位数百位、十位、个位上的值
                        hundredsPlace = num/100;
                        tensPlace = (num%100)/10;
                        onesPlace = num%10;
                        //判断这个数是否与百位、十位、个位上的数字的三次幂之和相等。
                        if(num == Math.pow(hundredsPlace, 3) + Math.pow(tensPlace, 3) + Math.pow(onesPlace, 3))
                        {
                                System.out.println(num);
                                System.out.println(hundredsPlace + "*" + hundredsPlace + "*" + hundredsPlace + "+" +
                                                tensPlace + "*" + tensPlace + "*" + tensPlace + "+" +
                                                onesPlace + "*" + onesPlace + "*" + onesPlace + "=");
                                System.out.println(hundredsPlace*hundredsPlace*hundredsPlace + "+" + tensPlace*tensPlace*tensPlace + "+" + onesPlace*onesPlace*onesPlace + "=" +
                                                (hundredsPlace*hundredsPlace*hundredsPlace+tensPlace*tensPlace*tensPlace+onesPlace*onesPlace*onesPlace));
                        }
                }
        }
}
结果:
153
1*1*1+5*5*5+3*3*3=
1+125+27=153
370
3*3*3+7*7*7+0*0*0=
27+343+0=370
371
3*3*3+7*7*7+1*1*1=
27+343+1=371
407
4*4*4+0*0*0+7*7*7=
64+0+343=407





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2