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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Fangjie 中级黑马   /  2016-6-12 08:08  /  613 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

打印指定的水仙花数,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。public static void main(String[] args) {
                //输出提示信息
                System.out.println("请输入一个数字,来搜索从100到它的水仙花数");
               
                //开启控制台输入流,接收一个数字,并把它转成字符串。
                Scanner sc = new Scanner(System.in);
                String str = sc.nextLine();
                sc.close();
               
                //判断,如果字符串的长度不等于3,则它不满足水仙花数的条件,输出提示信息
                if(str.length()!=3){
                        System.out.println("您输入的数字格式不符合水仙花数");
                }else{
                       
                        //如果满足则开始判断,先转成把该数转成int型,在定义3个int,用来存放该数的个,十,佰,位
                        int b,s,g,num = Integer.parseInt(str);       
                       
                        //开始遍历,从100到输入的num数
                        for(int x=100;x<num;x++){
                                b=x/100;
                                s=(x-b*100)/10;
                                g=x-b*100-s*10;
                               
                                //判断如果满足三个数的立方之和等于该数,则输出次数
                                if(x==(int)(Math.pow(g, 3)+Math.pow(s, 3)+Math.pow(b, 3))){
                                        System.out.println("从100到"+num+"的水仙花数有"+x);
                                }
                        }
                }
               
       
        }

2 个回复

倒序浏览
不错不错, 竟然用到了流操作!
回复 使用道具 举报
星空@3 发表于 2016-6-12 08:51
不错不错, 竟然用到了流操作!

谢谢,一起学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马