`
Touch_2011
  • 浏览: 286583 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

猴子偷桃问题(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);
 
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics