水仙花数、桃三李四橄榄七

水仙花数:

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身;

例如153是“水仙花数”,因为:153 = 13 + 53 + 33。

在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。

通过下面的两个例子来对水仙花数进一步了解:

对水仙花数的求法转化为对个位数、十位数、百位数的求法。

  • 个位数求法:i%10
  • 十位数求法:(i/10)%10
  • 百位数求法:i/100

求出 1000以内的水仙花数

//第一种写法
for(var i = 1;i<10;i++){
            for(var j=0;j<=9;j++){
                for(var k=0;k<=9;k++){
                    if( i*i*i + j*j*j + k*k*k === i*100 +j*10 +k){
                        console.log(i,j,k)
                    }
                }
            }
        }


//第二种写法
for( var j = 100;j<1000;j++){
        var k = parseInt(j/100);
        var l = parseInt((j/10)%10);
        var m = parseInt(j%10);
        if(j == k*k*k + l*l*l + m*m*m){
            console.log(j);
        }
    }

运行结果:

 桃三李四橄榄七

桃3钱一个、李4钱一个、橄榄1钱7个,若百钱购得百个,求桃、李、橄榄各几个?

桃子一个三文钱  李子一个四文钱  橄榄七个一文钱  一百文钱 买三种水果 买一百个

如下代码:

 for (var i = 1; ; i++) {
            for (var j = 1; ; j++) {
                for (var k = 1; ; k++) {
                    if (i * 3 + j * 4 + k / 7 === 100 && i + j + k === 100) {
                        console.log("桃子" + i + "个", "李子" + j + "个", "橄榄" + k + "个")
                    }

                    if (i * 3 + j * 4 + k / 7 > 100) {
                        break;
                    }
                }

                if (i * 3 + j * 4 > 100) {
                    break;
                }
            }

            if (i * 3 > 100) {
                break
            }
        }

运行结果:

 在生活当中可以利用一下心思哦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值