递归问题的处理

来源:互联网 发布:ubuntu 怎么卸载qq 编辑:程序博客网 时间:2024/05/22 02:21

经典问题集锦:


(1)猴子吃桃问题

(2)小球落地问题


猴子吃桃问题描述:


从前有一群群猴从果园里采来了许多桃子,第一天吃掉采来桃子的一半之后,猴王又多吃了了一个,第二天吃掉了剩下的一半之后,猴王又多吃了一个,一直到第十天猴子们去吃桃子时只剩下一个桃子了,问刚开始时猴子们总共采来了多少桃子?


图示分析:




代码实现:


#include<stdio.h>int main(){int total = 0;int rest = 1;for (int i = 9; i>0; i--){total = (rest + 1) * 2;rest = total;}printf("总的桃子个数为%d\n", total);system("pause");return 0;}

小球落地问题描述:


有一个小球从100米高空落下,每次反弹原高度的一半,问反弹十次小球下落的总高度和第十次小球下落的高度?


图示分析:



代码实现:


int main(){float totalhight = 100;int count = 0;float ret = 100;float nowhight = 0;for (count = 1; count < 10; count++){nowhight = ret;ret = nowhight / 2;totalhight += nowhight;}printf("十次的总的高度为%fm,第十次弹跳的高度为%fm\n", totalhight, ret/2);system("pause");return 0;}

程序运行结果:



0 0
原创粉丝点击