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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和
等于该数本身。例如:153 是一个 "水仙花数 ",因为 153=1 的三次方+5 的三次方+3 的
三次方。
思路:1、三位数:100-999,可看出百位1-9,十位0-9,个位0-9.
      2、那么就是先选百位x,再选十位y,在选个位z,三个for嵌套循环。
          3、当temp=x*100+y*10+z*1,如果temp==x*x*x+y*y*y+z*z*z,就记下count++。
*/
class Test5
{
        public static void main(String[] args)
        {
                System.out.println('\n'+"三位数中水仙花总数为:"+shuixianhua());
        }
        public static int shuixianhua()
        {
                int count=0;
                int temp=0;
                int temp1=0;
                System.out.print("三位数中所有水仙花数有: ");
                for (int x=1;x<=9 ;x++ )
                {
                        for (int y=0;y<=9 ;y++ )
                        {
                                for (int z=0;z<=9 ;z++ )
                                {
                                        temp=x*100+y*10+z;
                                        temp1=x*x*x+y*y*y+z*z*z;
                                        if (temp==temp1)
                                        {
                                                System.out.print(temp+" ");
                                                count++;
                                        }
                                }
                        }
                }
                                        return count;
        }
}

我都是x*x*x  有没有简单点的,能够直接表达三次方的写法的。。。。。

1 个回复

倒序浏览
math里面有这样的方法可用pow()
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马