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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 哈哈哈欠虫 中级黑马   /  2015-9-1 22:29  /  531 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从键盘录入一个起始数字,和终止数字,要求找出这个区间内所有的水仙花数,求大神给点思路{:2_33:}

7 个回复

倒序浏览
方法核心还是那种搞法,只不过在数据范围上弄成从键盘录入,我只负责想,代码我也不会写
回复 使用道具 举报
水仙花数 是指一个三位数,三个位置上的立方的和 等于这个三位数.
代码.:
for (int x=100; x <=999;x ++) {
       int a = x % 10;
       int b =x /10 %10;
       int c = x/100;
         if (x==a*a*a+b*b*b+c*c*c)  {
      System.out.println(x);
}

}
回复 使用道具 举报
路过 顶一下
回复 使用道具 举报
获取个位  十位 百位
回复 使用道具 举报
package delete;

import java.util.Scanner;

public class 水仙花数 {

        /**
         * @param args
         */
        public static void main(String[] args) {

                Scanner sc = new Scanner(System.in);
                System.out.println("请输入最小值:");
                int min = sc.nextInt();
                System.out.println("请输入最大值:");
                int max = sc.nextInt();
                for (int i = min; i < max; i++) {
                        int ge = i % 10;
                        int shi = i/10%10;
                        int bai = i /100 %10;
                        int sum = ge*ge*ge+bai*bai*bai+shi*shi*shi;
                        if(sum == i )
                        {
                                System.out.println(i);
                       
                        }
                }

        }

}
回复 使用道具 举报
路过   路过                        
回复 使用道具 举报
/*
        思路:1、定义一个水仙花数“一个三位数的各个位数的三次方相加等于三位数本身”
                  2、方法1:定义各个位数的值,通过其特殊性组成一个三位数;(乘法)
                     方法2:定义一个三位数,通过设定的特殊条件找到此数。(除法)
*/
class Flower
{
        public static void fun()                                        //定义一个乘法方法
        {
                int a=1,b=1,c=1;                                                //定义各个位数的值
                for (a=1;a<=9 ;a++ )                                        //设定百位数循环
                {
                        for (b=0;b<=9 ;b++ )                                //设定十位数循环
                        {
                                for (c=0;c<=9 ;c++ )                        //设定个位数循环
                                {
                                   int sum=a*100+b*10+c;                //定义一个三位数
                                   if (sum==a*a*a+b*b*b+c*c*c)        //设定此三位数的特殊条件
                                   {
                                           System.out.println("a="+a+" ,b="+b+" ,c="+c+"\t sum="+sum);
                                   }
                                }
                        }
                }
        }

        public static void main(String[] args)                //定义一个除法方法
        {
                for (int x=100;x<=999 ;x++ )                        //定义一个三位数循环
                {
                        int a=x/100;                                                //定义百位数条件
                        int        b=(x/10)%10;                                        //定义十位数条件
                        int        c=x%10;                                                        //定义个位数条件
                                if (a*a*a+b*b*b+c*c*c==x)                //设定此三位数的特殊条件       
                                {
                                        System.out.println("a="+a+" ,b="+b+" ,c="+c+"\t x="+x);
                                }
                }
                System.out.println("***********************");
                fun();
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马