关于递归算法1
Q:小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。
魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币
魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币
小易采购魔法神器总共需要n个魔法币,所以小易只能通过两台魔法机器产生恰好n个魔法币,小易需要你帮他设计一个投入方案使他最后恰好拥有n个魔法币。
Js实现:((1)选择Javascript(v8 6.0.0) (2)获取输入(注意:readline得到的是字符串,本例需要转化为数字) )
var n = parseInt(readline());
function magic(n){ if (n <= 0) { return '';} if (n && n%2===1) { return magic((n-1)/2) + '1'; }else { return magic((n-2)/2) + '2'; } }
console.log(magic(n));

function floor(s) { var arr = []; for (var i = 1; i <= s.length; i=i+2) { if(s[i] ===s[i-1]) { arr.push(i); } } return arr.length; }

function DNA(s) { var reg = /([ATCG])*/g; var arr = s.match(reg); var len = 0; for (var i = 0; i < arr.length; i++) { if(arr[i]&&arr[i].length>len) { len = arr[i].length; } } return len; }

function oddstring(s) {
s = s.toLowerCase();
var len = s.length;
if(len>200||len<2) {return ;} if (len%2 !==0) { s = s.substr(0,len-1); } len = s.length; var str1 = s.substr(0,len/2),str2 = s.substr(len/2,len); if (str1 === str2) { return len; }else { return oddstring(s.substr(0,len-2)); } }



浙公网安备 33010602011771号