"猴子摘桃问题" 不知道怎么解决了?求支招
问题描述:五只猴子一起摘了一堆桃子,因为太累,五只猴子决定先睡一觉再分。不久,其中一只猴子醒来了,它见别的猴子没有醒来,便将一堆桃子平均分成 5 份,结果多了一个,就将多的这个吃了,拿走其中的一份并离开。又不久,第二只猴子醒来了,它不知道有一个同伴已经拿走过桃子,便又将剩下的桃子平均分成 5 份,发现也多了一个,同样吃了这一个,拿走其中的一份。如此类推第3只,第4只,第5 只猴子都是这样分、吃、拿走。问这5只猴子至少摘了多少个桃子?
我是这样想的:
#include <stdio.h>
#define M 5 //共有M只猴子分了桃
#define N 1 //最后一只分桃的猴子将桃子均分后每份的桃子个数,因为要求最小桃数,所以定为一个
void main()
{
int a[M],i;
a[M-1]=5*N+1;
for(i=M-2;i>=0;i--)
a[i]=a[i+1]*5+1;
printf("最少桃子数为:%d\n",a[0]);
}