js代码:
t=3000;//总萝卜
s=0;//总里数
for(i=0;i<3000;i++){
s += 1/(2*Math.ceil(t/1000)-1);//每跟萝卜可行驶最远距离
if(s > 1000)
break;
t--;
}
console.log(t);
s=0;//总里数
for(i=0;i<3000;i++){
s += 1/(2*Math.ceil(t/1000)-1);//每跟萝卜可行驶最远距离
if(s > 1000)
break;
t--;
}
console.log(t);
534
php代码
<?php
/**
* 一个商人骑一头驴要穿越1000公里长的沙漠,去卖3000根胡萝卜。
* 已知驴一次性可驮1000根胡萝卜,但每走1公里又要吃掉1根胡萝卜。问:商人最多可卖出多少胡萝卜?
* 设计思路:驴一次可驮1000跟,所以3000跟得驮三次
* 随着萝卜越来越少,会变成驮两次,1次,驮多次时需要往返来驮,往返总次数为2n-1,n为需要驮的次数
* 只要计算每根萝卜能让驴驮所有萝卜走多远,然后
*/
$t=3000;//总萝卜
$s=0;//走过 的总路程
for($i=0; $i<3000; $i++){
$k = 2*ceil($t/1000)-1;//往返次数2乘以需要驮的次数减一
$s += 1/($k);//累加每跟萝卜可行驶最远距离
if($s > 1000)
break;
$t--;
}
echo $t;
/**
* 一个商人骑一头驴要穿越1000公里长的沙漠,去卖3000根胡萝卜。
* 已知驴一次性可驮1000根胡萝卜,但每走1公里又要吃掉1根胡萝卜。问:商人最多可卖出多少胡萝卜?
* 设计思路:驴一次可驮1000跟,所以3000跟得驮三次
* 随着萝卜越来越少,会变成驮两次,1次,驮多次时需要往返来驮,往返总次数为2n-1,n为需要驮的次数
* 只要计算每根萝卜能让驴驮所有萝卜走多远,然后
*/
$t=3000;//总萝卜
$s=0;//走过 的总路程
for($i=0; $i<3000; $i++){
$k = 2*ceil($t/1000)-1;//往返次数2乘以需要驮的次数减一
$s += 1/($k);//累加每跟萝卜可行驶最远距离
if($s > 1000)
break;
$t--;
}
echo $t;
转载请注明:小Y » 一个商人骑一头驴要穿越1000公里长的沙漠,去卖3000根胡萝卜。已知驴一次性可驮1000根胡萝卜,但每走1公里又要吃掉1根胡萝卜。问:商人最多可卖出多少胡萝卜?