一个棘手的C语言程序,请高手帮忙编写下..

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:12:14
这个是题目,有谁可以帮忙解决下的嘛,万分感谢呀...
根据以下描述,编制程序解决问题。
五只猴子一起摘了一堆桃子,因为太累,五只猴子决定先睡一觉再分。
不久,其中一只猴子醒来了,它见别的猴子没有醒来,便将一堆桃子平均分成 5 份,结果多了一个,就将多的这个吃了,拿走其中的一份并离开。
又不久,第二只猴子醒来了,它不知道有一个同伴已经拿走过桃子,便又将剩下的桃子平均分成 5 份,发现也多了一个,同样吃了这一个,拿走其中的一份。如此类推第3只,第4只,第5 只猴子都是这样分、吃、拿走。
问这5只猴子至少摘了多少个桃子?
写好后能再方便发我邮箱吗?jiangxing97@163.com
必须得在turbo C 2.0上运行通过呀,,
请各位试过之后再发布上来吧..谢了..

main()
{int i,m,j,k,count;
for(i=4;i<10000;i+=4)
{ count=0;
m=i;
for(k=0;k<5;k++)
{
j=i/4*5+1;
i=j;
if(j%4==0)
count++;
else
break;
}
i=m;
if(count==4)
{printf("%d\n",j);
break;}
}
}

#include <stdio.h>

//判断能否被合理的分配
int divide(int n,int m)
{
if(n/5==0 || n%5!=1)
{//不足5个或不能分5份多1个,分配失败
return 0;
}
if(m==1)
{//分到最后一个猴子,说明能分配成功
return 1;
}
return divide(n-n/5-1,m-1);
}

main()
{
int n;//桃子数量

for(n=1;;n++)
{
if(divide(n,5))
{//判断能否被合理的分配
printf("%d\n",n);
break;
}
}
}