五猴分桃问题

五只猴子分一堆桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆;第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是这样分的。问:这堆桃至少有多少个?

先给这堆桃子加上4个,设此时共有X个桃子,最后剩下a个桃子.这样:

第一只猴子分完后还剩:(1-1/5)X=(4/5)X;

第二只猴子分完后还剩:(1-1/5)2X;

第三只猴子分完后还剩:(1-1/5)3X;

第四只猴子分完后还剩:(1-1/5)4X;

第五只猴子分完后还剩:(1-1/5)5X=(1024/3125)X;

得:a=(1024/3125)X;

要使a为整数,X最小取3125.

减去加上的4个,所以,这堆桃子最少有3121个.

=============

从上可扩展该问题,可扩展为N猴分N桃问题.

并可通过程序实现.以后会对该问题进行补充.:

#include<stdio.h>
void main()
{
	int monkey=1;//进行分桃的猴子数
	int peaches,peach;//桃的总数和每次分桃的总数
	peaches=1;
	peach=peaches;
	while(monkey<=5)
	{
		if(peach%5==1&&peach/5!=0)
		{
			peach=(peach/5)*4;
			monkey++;
		}//符合条件进行下一次的分桃
		else
		{
			peaches++;
			peach=peaches;
			monkey=1;
		}
	}
	printf("桃的最小总数为:%d\n",peaches);
}

  

原文地址:https://www.cnblogs.com/dartagnan/p/2191208.html