亲猴子分桃问题的c语言编程拜求!详加注释!谢谢!

如题所述

#include <stdio.h>
int is_over(int total,int t){ if(t==0) return 1;//当t变为了0,说明前面t次分桃均成功,则返回1 total-=1;//多余的桃子仍向海里 if(total%5!=0)//剩下桃子不能平均分成5份 return 0; if(total%5==0)//剩下桃子可以平均分成5份 return is_over(total-1-((total-1)/5),t-1); /*采用递归调用的方法,如果第一只猴子可以分到桃,则参数变为剩下的桃子和剩下的猴子,按照同样的方法进行分桃*/}/*用来判断总共total个桃子,t只猴子,按照题目所述的方式进行分桃,如果能够分成功,则返回1,如果不能分成功,则返回0 */
int main(){ int peach=1;//peach为桃子的总数量,并对桃子总数设定初值 do{ if(is_over(peach,5)){//当循环到达题目要求的正解时,if括号内会返回1,此时输出桃子的总数,并break语句跳出循环 printf("%d",peach); break; } else peach++; }while(1);//无限循环,peach从小到大逐渐增加,只有当得到正确的解答时,循环才会跳出}//最终答案为 3121
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-26
问题说得详细点,这个忘了。追问

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只    猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了    一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,    问海滩上原来最少有多少个桃子?可以用c语言编个程序吗加上详细注释!

亲猴子分桃问题的c语言编程拜求!详加注释!谢谢!
int main(){ int peach=1;\/\/peach为桃子的总数量,并对桃子总数设定初值 do{ if(is_over(peach,5)){\/\/当循环到达题目要求的正解时,if括号内会返回1,此时输出桃子的总数,并break语句跳出循环 printf("%d",peach); break; } else peach++; }while(1);\/\/无限循环,peach从小...

相似回答
大家正在搜