猴子分桃问题

本文通过一个有趣的故事引入了数学逻辑问题:五个小矮人如何公平分配一定数量的野果。通过C#编程实现了对该问题的求解,并找到了最小的初始野果数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话说有五个小矮人上山摘野果,摘回来后平均分,可是怎么也分不下去.因为分不平均.到了晚上,一个小矮人爬起来,从里面扔了一个,刚好能平均分成五份.然后他把自己的那份藏起来,就睡觉去了.第二个小矮个也爬了起来,也把果子扔了一个后刚好分成5,他也把自己那份藏了起来.然后睡觉,余下3 个小矮人都是这样做的,过程完全一样. 请问,最初这堆果子至少有多少个?

自己写了个方法,感觉效率还可以

C# Codes:

public static bool CountResult(int totalNumber, int cycleCount)

        {

            for (int i = 0; i < cycleCount; i++)

            {

                totalNumber--;

                if (totalNumber % 5 == 0)

                {

                    totalNumber -= totalNumber / 5;

                    CountResult(totalNumber, cycleCount - 1);

                }

                else

                    return false;

            }

            return true;

        }

        static void Main(string[] args)

        {

            DateTime startTime = DateTime.Now;

            int i=6;

            while(!CountResult(i,5))

            {

                i += 5;

            }

            Console.WriteLine("i's value is {0}/n",i);

            DateTime endTime = DateTime.Now;

            Console.WriteLine("Cost time:{0}",(endTime-startTime).ToString());

            Console.ReadKey();

        }

output:

 

i's value is 3121

 

Cost time:00:00:00:0039068

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值