精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-04-03
【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
public static void main(String[] args) { double h=100; double sum=0; for (int i = 1; i <=10; i++) { sum+=h; h=h*0.5; if(i!=10){ sum+=h; } } System.out.println(sum+","+h); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-04-12
最后修改:2012-04-24
这么简单的题目就不需要for循环了,直接通过数学方法得出公式,然后直接输出结果就可以了。
count 1 2 3 4 5 公式 经过多少米? 100 200 250 275 287.5 100*(3-1/(2^(N-2))) 反弹多高? 50 25 12.5 6.25 3.125 100/(2^N) public static void main(String[] args) { float H=100f; int count=10; System.out.println(H*(3-1.0/Math.pow(2,count-2))); System.out.println(H/Math.pow(2,count)); } |
|
返回顶楼 | |
发表时间:2012-04-17
我看IT论坛应该有个数学专栏。
|
|
返回顶楼 | |
发表时间:2012-04-17
瞧不思 写道 我看IT论坛应该有个数学专栏。
支持,数学在程序开发中相当的实用 |
|
返回顶楼 | |
发表时间:2012-04-18
都在讨论数学问题,这个题目显然不符合物理规律哦。。
|
|
返回顶楼 | |
发表时间:2012-04-18
学习、练习,千锤百炼。
|
|
返回顶楼 | |
发表时间:2012-04-20
public void cal(int m){
double d = 0.0; for(int i=1;i<=m;i++){ double nowH = Math.pow(0.5, i)*100; d += (nowH*3); System.out.println("第"+i+"次:"+nowH); } System.out.println("一共:"+d); } |
|
返回顶楼 | |
发表时间:2012-04-23
楼主有的答案有错吧,第一次落下是100,剩下的9次应该是,h*0.5*2 , 也就是说第2次落下也是100,剩下的8次,H>>>1,
就ok了 |
|
返回顶楼 | |
发表时间:2012-04-23
第一次应该是150吧。以后每次的弹跳是双倍吧。
|
|
返回顶楼 | |
发表时间:2012-04-24
public class Test { public static float bollPassBySum(float hight, int frequency) { float passSum = hight; for (int i = 1; i < frequency; i++) { passSum += hight; hight /= 2; } return passSum; } public static void main(String[] args) { System.out.println(bollPassBySum(100, 10)); } } 我写了一个结果约等于300 |
|
返回顶楼 | |