首页 > 其他 > 详细

第7节水仙花

时间:2021-01-18 23:43:47      阅读:36      评论:0      收藏:0      [点我收藏+]

水仙花

  需求:在控制台输出所有的“水仙花数”

  什么是水仙花数?

  1、水仙花数是一个三位数

    111  222  333  370  371  520  999

  2、水仙花数的个位、十位、百位的数字立方和等于原数

    123  13+23+33=1+8+27=36 !=123  不是水仙花数

     371  33+73+13=27+343+1=371=371  水仙花数

  分析:

  1、三位数的个位数字如何求

    371  1就是原始数字对10进行取余运算的结果  371%10=1

  2、三位数的百位数字如何求

    371  3就是原始数字除以100的结果(整除)  371/100=3

  3、三位数的十位数字如何求

    371  371通过除以10,可以将7移动到个位上(整数)  371/10=37  

        37通过对10进行取余运算可以得到最后一位的值7  37%10=7

        371/10%10=7

  4、思考:任意数字的指定位上的数值如何求

    先使用整除操作将要求的数字移动到个位上,再使用取余操作取出最后一位上的值

    123456789  先整除10000得到12345,再对10取余得到5

  分析:

  1、输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,999结束

  2、不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出

  3、判定条件是将三位数中的每个数据取出来,计算立方和后与原始数字比较是否相等

  4、在计算之前获取三位数中每个位上的值

  综合分析:

  先建立循环

  计算是否满足条件,满足条件输出

  取出三位数中的个位十位百位数字

  

public class ForDemo04{
    public static void main(String[] args){
        int g=0;//个位
        int s=0;//十位
        int b=0;//百位
        
        int sum=0;
        for(int i=100;i<=999;i++){
            g = i%10;
            s = i/10%10;
            b = i/100;
            sum=(g*g*g)+(s*s*s)+(b*b*b);
            if(sum==i){
                System.out.println("水仙花数:"+i);
            }
        }
    }
}

 

  

 

第7节水仙花

原文:https://www.cnblogs.com/fangbin-caoqiaomeng/p/14295603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!