失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python猴子偷桃问题_java猴子偷桃问题

python猴子偷桃问题_java猴子偷桃问题

时间:2024-03-30 11:32:34

相关推荐

python猴子偷桃问题_java猴子偷桃问题

问题描述:猴子分桃:海 滩上有一堆桃子,五只猴子来分。

第一只猴子把这堆桃子凭据分为五份,多了一个,

这只猴子把多的一个扔入海中,拿走了一份。

第二只猴子把剩下的桃子又平均分成五份,又多了一个,

它同样把多的一个扔入海中,拿走了一份,

第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

思想:不足之处,欢迎指正。每一只猴子,都对这堆桃做了相同的操作,采用递归调用。判断条件是每只猴子都能扔一个桃子之后,能够分成五份,即对5取余等于0.

通过循环使桃子数递增,直到最小的满足情况出现结束循环。

运行成功,结果为3121

public class tao{

static int flag=0;

static int temp =0; //记录跳出循环的条件

public static void main(String[] args)

{

hou2(6);

//最后的一个猴子能扔了一个,分成五份。从这递增。其实无所谓

}

public static void hou2(int m )//计算多少个桃子的总数

{

for(int i=m;;i+=5)

//i表示桃子总数的递增 分成五份 每次加五 桃子数肯定是5的倍数+1

{

//System.out.println("i="+i+"\t");

if(temp!=0)

//跳出循环 temp 得到赋值,肯定已经满足情况了,跳出所有循环

break;

if((i-1)%5==0) //第一只猴子可以分派

{

flag++;//flag代表能够有flag只猴子操作

if(flag==5) //第五只猴子已经可以分配,输出原来i的值

{

temp=i;

for(int j=flag-1;j>0;j--)

//计算原来有多少只桃子

{

temp=temp5/4+1;

}

System.out.println(temp);

break;

}

else

hou2((i-1)4/5);

//还不满足第五只桃子,继续判断

}

else

{

if(flag!=0)

//不是第一次判断 并且不满足猴子分配的情况回到原来的位置

{

int temp=i; //记录原来的位置

for(int j=flag;j>0;j--)

{

temp=temp*5/4+1;

}

flag=0;

//回到原来的位置,并继续循环 重置flag

hou2(temp+5);

break;

}

continue;

//是第一次判断,并且不满足,继续下一个循环

}

}

}

}

如果觉得《python猴子偷桃问题_java猴子偷桃问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。