基础算法题---水仙花数

基础算法题—水仙花数

题目:打印出所有的”水仙花数”

百度百科:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
水仙花数是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。

编码:

// 严格来说三位数的3次幂数才成为水仙花数。所以从100开始到999
        for (int i = 100; i < 1000; i++) {
            // 百位数(int类型舍弃小数位)
            int a = i / 100;
            // 十位数
            int b = (i - a * 100) / 10;
            // 个位数
            int c = i - a * 100 - b * 10;
            // 计算百位数立方+十位数立方+个位数立方的总和
            int num = a * a * a + b * b * b + c * c * c;
            // 每位上数字的3次幂之和等于它本身则为水仙花数
            if (num == i) {
                System.out.println(i);
            }
        }

获取百位数、十位数、和个位数还可使用substring进行截取

for (int i = 100; i < 1000; i++) {
            //当前数转为String类型
            String numString = i + "";
            // 百位数
            int a= Integer.parseInt(numString.substring(2));
            // 十位数
            int b= Integer.parseInt(numString.substring(1, 2));
            // 个位数
            int c= Integer.parseInt(numString.substring(0, 1));
            int num = a* a* a+ b* b * b+ c* c* c;
            if (num == i) {
                System.out.println(i);
            }
        }

理解了水仙花数后,其他自幂数的思路也都相同
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数

PS:以上如若有错误,还望不吝指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值