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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
需求:在控制台输出所有的”水仙花数”
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例: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);
        }
}

11 个回复

倒序浏览
才学习完 刚开始也是一头雾水
回复 使用道具 举报
都搞不懂为啥弄个这种名字,直接上方法不是挺好么
回复 使用道具 举报
举例不错,虽然目前还没学到,至少可以根据举例看出一点。
回复 使用道具 举报
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);
}
}
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
加油吧↖(^ω^)↗
回复 使用道具 举报
加油............
回复 使用道具 举报
一共就4个,是不是?
回复 使用道具 举报
厉害,赞赞赞
回复 使用道具 举报
开始也不懂,也是学完才懂得..
回复 使用道具 举报
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
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马