怎么肥事? 执行不出来,错哪啦?小姐姐,小哥哥求助~
<!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>
10
收起
正在回答 回答被采纳积分+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()是数学方法,是求多少次幂,前面为底数,后面为幂。
希望能够帮到你。
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星