用简单的方法实现,关键是明白原理。
/************************************************************************/
/*有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个*/
/* 到了第10天就只余下一个桃子。(C语言实现) */
/*用多种方法实现求出原来这群猴子共摘了多少个桃子。 */
/************************************************************************/
/*运行环境:VC++6.0 */
/************************************************************************/
#include "stdio.h"
main()
{
int i,j,k; /*j是最后的桃子数,k是中间变量,也是桃子总数*/
j = 1;
for(i=9;i>0;i--)
{
k = (j + 1) * 2;
j = k;
}
printf("%total=%d/n",k);
}
或者
/************************************************************************/
/*有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个*/
/* 到了第10天就只余下一个桃子。(C语言实现) */
/*用多种方法实现求出原来这群猴子共摘了多少个桃子。 */
/************************************************************************/
/*运行环境:VC++6.0 */
/************************************************************************/
#include "stdio.h"
main()
{
int i,j,k; /*j是最后的桃子数,k是中间变量,也是桃子总数*/
j = 1;
i = 9;
while(i > 0)
{
k = (j + 1) * 2;
j = k;
i--;
}
printf("%total=%d/n",k);
}
本文通过两种C语言实现方式解决了一群猴子每天吃掉一半桃子再多吃一个的问题,最终计算出初始桃子数量。采用逆向思维从第十天剩余的一个桃子出发向前推算。
7363

被折叠的 条评论
为什么被折叠?



