论坛首页 编程语言技术论坛

【java练习题1】--一球从100米高度自由落下

浏览 16406 次
精华帖 (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);

}

   发表时间: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));
}
0 请登录后投票
   发表时间:2012-04-17  
我看IT论坛应该有个数学专栏。
0 请登录后投票
   发表时间:2012-04-17  
瞧不思 写道
我看IT论坛应该有个数学专栏。


支持,数学在程序开发中相当的实用
0 请登录后投票
   发表时间:2012-04-18  
都在讨论数学问题,这个题目显然不符合物理规律哦。。
0 请登录后投票
   发表时间:2012-04-18  
学习、练习,千锤百炼。
0 请登录后投票
   发表时间: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);
}
0 请登录后投票
   发表时间:2012-04-23  
楼主有的答案有错吧,第一次落下是100,剩下的9次应该是,h*0.5*2 , 也就是说第2次落下也是100,剩下的8次,H>>>1,
就ok了
0 请登录后投票
   发表时间:2012-04-23  
第一次应该是150吧。以后每次的弹跳是双倍吧。
0 请登录后投票
   发表时间: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

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics