请教这题用递归怎么做?
已知一个皮球从10米高处自由下落,假设球每次都垂直向弹起到上次所到达高度的一半,那么皮球第10次落地时共经过了多少路程,请用递归法编程解决本问题.
2,皮球从height米得高度自由落下,接触地面后反弹到原高度的一半,再落下,再反弹,如此反复。皮球在n次落地时,在空中经过的路程是多少米?第n次反弹的高度是多少?(输出保留1位小数)
(输入输出示例Input height:10
Input n:2
distance=25.0
height=2.5)
程序代码:
程序代码:
#define NUMBER 2 double fun(int n,int number); #include<stdio.h> main() { int n,i; double distance,height,start_height; puts("Input start_height & n:"); scanf("%lf%lf",&start_height,&n); distance=start_height; height=start_height/fun(n,NUMBER); for(i=1;i<=n;i++){ start_height=start_height/2; distance+=start_height*2.0; } printf("%.1lf\n%.1lf",distance,height); return 0; } double fun(int n,int number) { double sum; if(n==0) sum=1; else sum=number*fun(n-1,number); return sum; }这个是我以前写的,在我以前发过的帖子里!今天顺便就直接拿过来了呀!呵呵!有点懒呀!