题目大意:一维数轴上,农夫在N点,牛在K点,假定牛不会移动,农夫要找到这头牛只能够进行以下三种移动方法
- 2*N-跳跃到两倍于自己所在的位置
- N+1 -右移一位
- N -1 -左移一位
- 农夫一次只能选择一种走法。求农夫找到牛的最小步骤
假设 N=5 K=17 那么应该输出4
下面给出前端常用的 javascript语言的解法
<script>
var R = 100000;
function a(){
var N = 5;
var K = 17;
var i = 1;
while(true){
var s = sum (1,3);
if((s ==1)&&(N<K)){
N= N+1;
}
if(s ==2&&(N<K)){
N= N*2;
}
if((N>K)){
N= N-1;
}
i= i+1;
//document.write(N+"</br>");
if(N==K){
if(R>i-1){
R =i-1;
}
document.write(R+"</br>");
return;
}
}
}
setInterval('a()',100);
function sum (m,n){
var num = Math.floor(Math.random()*(m - n) + n);
return num ;
}
</script>
直接利用计算机快速的计算速度 让农夫随机走 然后统计 找到最小的步骤。