求水仙花数

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

什么是“水仙花数" ?

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

    111  222  333  370  371  520  999

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

例如:123 1^3 +2^3 + 3^3 = 1+ 8 +27  =  36  !=  123  不是水仙花数

 371   3^3 + 7^3 + 1^3  = 27 + 343 +  1 =  371 = 371 是水仙花数

分析:

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

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

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

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

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

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

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

    371 / 10 = 37

    37 % 10 = 7

    371 / 10 %  10 = 1

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

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

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

public static void main(String[] args) {
        //1. 输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
        for (int i = 100; i <=999 ; i++) {
            //2. 在计算之前获取三位数中每个位上的值
            int a = i/100%10;  //bai
            int b = i/10%10;  //shi
            int c = i%10;    //ge
            //3. 判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
            if (a*a*a+b*b*b+c*c*c==i){
                //4. 输出满足条件的数字就是水仙花数
                System.out.println(i);
            }
        }
    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值