本帖最后由 yufeiant 于 2012-7-21 02:01 编辑
/*
题目:一球从100米高度自由落下,每次罗茨后反跳回原高度的一半;在落下,求它在第十次落地式,共经过多少米?第十次反弹多高?
思路:100,100,50,50,25,25,12.5,12.5,。。。。发现每一次弹跳走过的长度都是想到用数组,把每次落又返回中走过的长度记录到数组中,这个数组的类型是
double,每一次的弹跳走过的长度,都是它的高度的二倍,所以想到直接把它所有的高度都求出来然后相加在乘以2,然后再加上开始的时候的一百,就是跳到x次后走过的长度
*/
class TestDemo
{
public static void main(String [] args)
{
getNumber(100,10);
}
public static void getNumber(double num,int x)
{
double sum = 0;
double [] arr = new double[x];
for ( x =0;x<10 ;x++ )
{
num /=2;//发现这里如果先加上那100,的话,后面就没有办法在进行乘2,了所以把乘2和加100都放到输出里边
arr[x] = num;
//System.out.println(arr[x]);便利一下,看看是不是对
}
double height = 0;
for (int z = 0;z<x ;z++ )
{
height += arr[z];
if (z==(x-1))
{
System.out.println(arr[z]);
}
}
System.out.println(height*2+num);
}
}
刚才发现错了,惭愧啊,没有想到会犯这样的错误
把所有的便利了一下,
50.0
25.0
12.5
6.25
3.125
1.5625
0.78125
0.390625
0.1953125
0.09765625
0.09765625
299.8046875
请按任意键继续. . .
|
|