您的位置:首页 > 其它

【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

2017-03-14 08:40 686 查看
/*
2017年3月6日11:12:26
java基础50道经典练习题 例10
Athor: ZJY
Purpose:
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

*/
import java.util.Scanner;

public class ProgramNo10_1
{
public static void main(String[] args)
{
System.out.print("输入球落地高度和求解的次数: ");
Scanner sc = new Scanner(System.in).useDelimiter("\\s");
int height = sc.nextInt();
int count = sc.nextInt();
sc.close();

double sum = 0;
for (int i=0; i<count; i++) {
sum += distance(height, i);
}
System.out.println("第" + count + "次球落地反弹"
+ distance(height, count) + "米,共经过" + sum + "米");

}
private static double distance(int height, int cnt)
{
double distan = 0;
if(0 == cnt)
distan = height;
else
distan = distance(height, cnt-1)/2;

return distan;

}

}
/*
2017年3月6日11:12:26
java基础50道经典练习题 例10
Athor: ZJY
Purpose:

*/
import java.util.Scanner;

public class ProgramNo10_2
{
public static void main(String[] args){
System.out.print("请输入小球落地时的高度和求解的次数:");
Scanner scan = new Scanner(System.in).useDelimiter("\\s");
int h = scan.nextInt();
int n = scan.nextInt();
scan.close();
distance(h,n);
}
//小球从h高度落下,经n次反弹后经过的距离和反弹的高度
private static void distance(int h, int n){
double length = 0;
for(int i=0;i<n;i++){
length += h;
h /=2.0 ;
}
System.out.println("经过第"+n+"次反弹后,小球共经过"+length+"米,"+"第"+n+"次反弹高度为"+h+"米");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐