怎么肥事? 执行不出来,错哪啦?小姐姐,小哥哥求助~
<!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 星