怎么肥事? 执行不出来,错哪啦?小姐姐,小哥哥求助~

怎么肥事? 执行不出来,错哪啦?小姐姐,小哥哥求助~

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>水仙花数</title>
</head>
<body>
    <script>
        for(var x=100;x<1000;x++){
                var i=x/100;//百位
                var j=x/10%10;//十位
                var k=x%100//个位
                var y=(i*i*i)+(k*k*k)+(j*j*j);
                if(y==x){
                    document.write(x+"<br/>");
                }
            }
 </script>
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
白船袜七分裤 2018-01-28 18:49:54
var j=x/10%10;

你这里运算有问题,运算不了啊。

我知道你的做法,是想把每个位上的数单独取出来,然后再3次幂,再相加,与原先对比。

我的算法你可以看一下,应该容易懂。

var a,b,c,iStr="",l,num;
for(var i=100;i<1000;i++){
iStr=i.toString();
a=Number(iStr[0]);
b=Number(iStr[1]);
c=Number(iStr[2]);
l=iStr.length;
num=Math.pow(a,l)+Math.pow(b,l)+Math.pow(c,l);
if(num==i){
document.write(i+"<br>");
}
}

将数先转化成字符,这样就可以通过中括号单独取到每一位。

Math.pow()是数学方法,是求多少次幂,前面为底数,后面为幂。


希望能够帮到你。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师