经典问题集锦:
(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;
}
程序运行结果: