这个for循环需要计算
一个球距离地面100米
自由落下来,每次落地弹起高度为原来高度的一半,在落下,一次类推,第十次球弹起的高度为多少 ?整个过程,球运动了多少米?
一个球距离地面100米
自由落下来,每次落地弹起高度为原来高度的一半,在落下,一次类推,第十次球弹起的高度为多少 ?整个过程,球运动了多少米?
2016-04-25
<script type="text/JavaScript">
//初始高度100米,sum为球总运行路程;
var h=100;
var sum=0;
//理想情况会一直运动下去,这里假设弹起1000次
for(var i=1;i<=1000;i++){
var n=Math.pow(2,i);//n=2的i次方
sum=300/n+sum;//
h=0.5*h;
document.write("第"+i+"次球弹起的高度为:"+h+"米"+"运动路程为:"+sum+"<br/><br/>")
if(i==10){
document.write("第10次弹起的高度为:"+ h+"米,<br/>球运动了:"+sum+"米");
break;
}
}
</script>
你运行下看看,显示了每次弹起的高度和已经运行的路程;
回复 2015415happy:<script language="javascript">
//初始高度100米,sum为球总运行路程;
var h=100;
var sum=0;
//理想情况会一直运动下去,这里假设弹起1000次
for(var second=1;second<=1000;second++){
sum=1.5*h+sum;
h=0.5*h;
document.write("第"+second+"次球弹起的高度为:"+h+"米"+"运动路程为:"+sum+"<br/><br/>")
if(second==10){
document.write("第10次弹起的高度为:"+ h+"米,<br/>球运动了:"+sum+"米");
break;
}
}
</script>
var fixedDistance = 100; var heightOf10TH = 0; var totalDistance = 0; for (var i = 0; i < 10; i++) { totalDistance += fixedDistance; fixedDistance /= 2; if(i == 9) { heightOf10TH = fixedDistance; } } document.write("球共运动了: " + (totalDistance + 100) + "米<br />"); document.write("球在第十次弹起的高度为: " + heightOf10TH + "米<br />"); 正确解答 ^ 最后第二行的+100是计算首次降落的距离
var fixedDistance = 100; var heightOf10TH = 0; var totalDistance = 0; for (var i = 0; i < 10; i++) { fixedDistance /= 2; totalDistance += fixedDistance; if(i == 9) { heightOf10TH = fixedDistance; } } document.write("球共运动了: " + totalDistance + "米<br />"); document.write("球在第十次弹起的高度为: " + heightOf10TH + "米<br />");
举报