zoukankan      html  css  js  c++  java
  • 五猴分桃问题

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

    先给这堆桃子加上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);
    }
    

      

  • 相关阅读:
    保险实战
    单片机的应用(位操作)
    显示转换(类型转换)
    游泳池的容量
    消失的重量(隐式变换)
    物品交换(变量)
    物品的存放(变量)
    输出变量的界值(int、float、long.....)
    在屏幕上输出内容
    C#笔记
  • 原文地址:https://www.cnblogs.com/dartagnan/p/2191208.html
Copyright © 2011-2022 走看看