JAVA练习题04

10.package fs;import java.util.Scanner;public class Fs10 {// 题目:一球从h米高度自由落下,每次落地后反跳回原高度的一半;// 再落下,求它在 第n次落地时,共经过多少米?第n次反弹多高?public static void main(String[] args) { System.out.println("请输入自由落体高度:"); Scanner a=new Scanner(System.in); .
摘要由CSDN通过智能技术生成
10.package fs;

import java.util.Scanner;

public class Fs10 {
//    题目:一球从h米高度自由落下,每次落地后反跳回原高度的一半;
//    再落下,求它在 第n次落地时,共经过多少米?第n次反弹多高?
public static void main(String[] args) {
    System.out.println("请输入自由落体高度:");
    Scanner a=new Scanner(System.in);
    double a1=a.nextByte();
    double a2=a1;
    System.out.println("请输入反弹次数:");
    Scanner n=new Scanner(System.in);
    int n1=n.nextByte();
    for (int i=0;i<n1;i++){
        a1 = a1 /2 ;
        a2+=a1;
    }
    System.out.println("总路径"+a2);
    System.out.println("最后一次高度"+a1);
}
}
其他解法
   再落下,求它在 第n次落地时,共经过多少米?第n次反弹多高?

程序分析:反弹的高度:(1/2)的n次方*h

  * 经过的距离:这个可以总结得到:第一次落地经过:h,第二次落地经过:h+(h/2)*2,

  * 第三次落地经过:h+(h/2)*2+(h/2/2)*2 

  * 那么第n次落地经过:  h+(h/2)*2+(h/2/2)*2 +...+h/(2的n-1次方)*2

public class Programme10 {

public static void main(String[] args) {

   System.out.println("请输入小球下落的高度和落地的次数:");

   Scanner scanner=new Scanner(System.in);

   float h=scanner.nextFloat();

   float n=scanner.nextFlo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值