猴子偷桃问题(C语言实现)
/* * * 题目:有五只猴子摘了一堆桃,决定第二天分食,在晚上,一只猴子偷偷起来把桃子 平分成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); }?