球掉落问题

来源:互联网 发布:软件项目报价方案 编辑:程序博客网 时间:2024/04/27 15:37

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

基本思路
某一次下落的高度是前一次下落高度的一半;某一次上升高度于后一次下降高度相同;第一次下落高度为100米;用递归

java实现

public class DropBall {    public static void main(String[] args){        double total = 0.0;        for(int i=1;i<=10;i++){            total=down(i)+up(i)+total;        }        total -= up(10);        System.out.println("第10次落地时,共经过了"+total+"米");        System.out.println("第十次反弹"+up(10)+"米");    }    public static double down(int time){        return time==1? 100.0:down(time-1)*0.5;    }    public static double up(int time){        return down(time+1);    }}

C语言实现

 #include <stdio.h> double down(int time){     return time==1? 100:0.5*down(time-1); } double up(int time){     return down(time+1); } void main(){    double total = 0.0;    int i;    for(i=1;i<=10;i++){        total=down(i)+up(i)+total;    }    total -= up(10);    printf("第10次落地时,共经过了%f米\n",total);    printf("第十次反弹%f米",up(10)); }
0 0
原创粉丝点击