黑马程序员技术交流社区

标题: 打印水仙花数中三次方有没有简单的表达方式啊 [打印本页]

作者: 黑马嗨嗨嗨    时间: 2016-11-30 20:42
标题: 打印水仙花数中三次方有没有简单的表达方式啊
/*
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和
等于该数本身。例如: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  有没有简单点的,能够直接表达三次方的写法的。。。。。


作者: 1413157322    时间: 2016-12-1 00:00
math里面有这样的方法可用pow()




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