Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

关于猴子拿桃子的问题

Posted on 2008-06-13 10:37  analyzer  阅读(428)  评论(0编辑  收藏  举报
题目:有5只猴子分桃子,第一只猴子先去分,把一只桃子扔海里,然后平均分了剩下的桃子,自己拿走了一份;第2只猴子也是把一只桃子扔进海里,然后也平均分了剩下的桃子拿走了一份;第3,4,5只猴子都按照这样的方法分了桃子,请问桃子最少有多少只?    
   
昨天晚上我给出的解答:    
   
设:    
第一个猴子拿了x1个桃子    
第二个猴子拿了x2个桃子    
第三个猴子拿了x3个桃子    
第四个猴子拿了x4个桃子    
第五个猴子拿了x5个桃子    
   
最后剩余a个桃子;    
   
总共有n个桃子;    
   
根据题意:    
a
=x5*4    
x4
=(1+x5*5)/4    
x3=(1+x4*5)/4    
x2=(1+x3*5)/4    
x1=(1+x2*5)/4    
   
n
=a+x1+x2+x3+x4+x5+5;    
   
<script>    
var x1,x2,x3,x4,x5,a,n;    
for (x5=1;true;x5++{    
 x4 
= (1+x5*5)/4;    
 x3 = (1+x4*5)/4    
 x2 = (1+x3*5)/4    
 x1 = (1+x2*5)/4    
 if ( (x4 % 1== 0 && (x3 % 1== 0 && (x2 % 1== 0 && (x1 % 1== 0{    
  
break;    
 }
    
}
    
a
=x5*4;    
n
=a+x1+x2+x3+x4+x5+5;    
alert(
"总共最少有 "+ n + " 个桃子!");    
</script>    
   
一下是n个猴子的思路,但结果现在不对,正在调试中:    
   
<pre>    
设:    
   
最后剩余a个桃子;    
总共有n个桃子;    
总共有k个猴子;    
   
则:    
第一个猴子拿了X1个桃子    
第二个猴子拿了X2个桃子    
第三个猴子拿了X3个桃子    
第四个猴子拿了X4个桃子    
第五个猴子拿了X5个桃子    
    
第 k个猴子拿了Xk个桃子    
   
根据题意:    
a
=Xk*(k-1)    
X(k
-1)=(1+Xk*k)/(k-1)    
x(k-2)=(1+X(k-1)*k)/(k-1)    
    
X2
=(1+X3*k)/(k-1)    
X1=(1+X2*k)/(k-1)    
   
n
=a+X1+X2+X3+X4+X(k-1)+Xk+5;    
</pre>    
   
<script>    
   
var str = "";     
function diguiFun(X,k,k1) {    
 
var X_temp = (1+X*k)/(k-1);    
 str = str+X_temp+"~";    
 
//alert(k1);    
 if (--k1 > 1{    
  diguiFun(X_temp,k,k1);    
 }
     
}
    
   
function monekyFun(k) {    
 
var Xk,a,n,n_temp;    
 
var arr;    
 outerFor:
for (Xk=1;true;Xk++{    
  
var b = false;     
  str 
= "";     
  diguiFun(Xk,k,k);    
  
//alert(Xk);    
  alert(str)    
  arr 
= str.split("~");    
  innerFor:
for (var i=0; i<arr.length-1; i++{    
   
if ((arr[i] % 1!= 0{    
    
continue outerFor;    
    b 
= true;    
   }
    
  }
    
  
if (!b) break;    
 }
    
 a 
= Xk*(k-1);    
 alert(a);    
 n_temp 
= a + k;    
 n 
= parseInt(n_temp);    
 alert(arr.length)    
 
for (var j=0; j<arr.length-1; j++{    
  n 
= n + parseInt(arr[j]);    
 }
    
 alert(
"总共最少有 "+ n + " 个桃子!");    
}
    
   
function setNumFun() {    
 
var num = document.getElementById("redhacker").value;    
 monekyFun(num);    
}
    
</script>    
<input type="text" value="5" id="redhacker"/>    
<input type="button" value="计算" onclick="setNumFun()"/>  
我要啦免费统计