2-9问题

2-9问题

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>水仙花数</title>

</head>

<body>

    <script>

     for(var i=100;i<=1000;i++){

     var a=i/100;//百位

     var b=i%10;//个位

     var c=(i/10)%10;

     if(i==a*a*a+b*b*b+c*c*c){

     document.write(i+"<br>");

     }

     }

</script>

</body>

</html>

老师,请问我的代码哪里有问题?实在找不出问题

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

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

1回答
卡布琦诺 2017-10-29 13:25:32

大体的逻辑是对的,但是不同段的位数运算逻辑不对:

var a,b,c ;
        for(i=100;i<1000;i++){
            var a = parseInt(i%10);  //个位数
            var b = parseInt((i/10)%10);  //十位数
            var c = parseInt(i/100);   //千位数
            if(a*a*a+b*b*b+c*c*c== i){
            document.write(i +"<br/>");
        }
        }

   祝学习愉快!

  • 提问者 慕雪1434180 #1
    老师,请问为什么必须要加parseInt,为什么不能直接计算,parseInt是用于取整,而%和/运算符取到的不应该是整数吗?再用parseInt不是多此一举了吗?但是,为什么不使用parseInt又不正确
    2017-10-29 16:09:39
  • 卡布琦诺 回复 提问者 慕雪1434180 #2
    %是取余,parseInt是提取整数的,比如123 这个数,比如123/10=12.3, parseInt(12.3)=12,希望可以帮到你~
    2017-10-29 16:53:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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