| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 859 人关注过本帖
标题:请教这题用递归怎么做?
只看楼主 加入收藏
youyuanjia
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-9-19
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:3 
请教这题用递归怎么做?
已知一个皮球从10米高处自由下落,假设球每次都垂直向弹起到上次所到达高度的一半,那么皮球第10次落地时共经过了多少路程,请用递归法编程解决本问题.
搜索更多相关主题的帖子: 递归 
2010-05-13 21:07
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:6 

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;
}

这个是我以前写的,在我以前发过的帖子里!今天顺便就直接拿过来了呀!呵呵!有点懒呀!

愿用余生致力编程
2010-05-13 21:28
wu644877373
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:47
专家分:30
注 册:2010-5-11
收藏
得分:6 
书上有的 吧。

2010-05-13 22:39
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:6 
#include <stdio.h>

float fun(int deep, float h)
{
    float s;
    if (deep == 11) return 0;
    s = 2*h + fun(deep+1, h/2);
    return s;
}

int main(void)
{
    float sum = 10.0;
    sum += fun(2, 10.0/2);
    printf("sum = %f\n", sum);
}
2010-05-14 10:55
快速回复:请教这题用递归怎么做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031917 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved