猴子分桃问题

来源:百度文库 编辑:神马文学网 时间:2024/10/03 02:33:50
/********************经典猴子分桃问题算法实现*************/
//最后一只拿走:x            一共: 5*x+1
//倒数第二只拿走:(5*x+1)/4         (5*x+1)/4*5+1
//倒数第三只拿走:((5*x+1)/4*5+1)/4 ((5*x+1)/4*5+1)/4*5+1
/********************************************************/
int getNum(){
int x=1;                                                     //x为每个猴子分得桃子的初始值
int old=x;
int sum=0;                                                //用于累加求和
for(int j=1;j<=5;j++)
{
sum=5*x+1;
x=sum/4;
if(sum%4!=0) {                                      //当和不能被4整除时,说明初始值不对
x=++old;                                            //下一个初始值
if(j==5) break;
j=0;
continue;
}
}
return sum;
}