/* * * 题目:有五只猴子摘了一堆桃,决定第二天分食,在晚上,一只猴子偷偷起来把桃子 平分成5份,还剩下一只桃,便吃了剩下的一只,再拿走了其中一份。一会儿又 有一只猴子起来也把桃子平分成5份,还剩一只,便吃了,再拿走一份。就这样, 第三只、四只、五只都按此法吃了又拿,问这五只猴子原来最少摘了多少只桃? * * 作者:Touch * 思路:此题很简单,只是没做过,闲来没事写一下罗。递归思想 */ #include<stdio.h> #define NUMBER 5 //猴子的个数 //sum是桃子的个数,n是第几个猴子 int steal(int sum,int n) { if(n==NUMBER+1) return 1; else return ((sum-1)%5==0)?steal((sum-1)/5*4,n+1):0; } void main() { int sum=0; while(!steal(++sum,1)); printf("%d\n",sum); }