话说有五个小矮人上山摘野果,摘回来后平均分,可是怎么也分不下去.因为分不平均.到了晚上,一个小矮人爬起来,从里面扔了一个,刚好能平均分成五份.然后他把自己的那份藏起来,就睡觉去了.第二个小矮个也爬了起来,也把果子扔了一个后刚好分成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