题目:有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()"/>
昨天晚上我给出的解答:
设:
第一个猴子拿了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()"/>