加州提子面包

JavaScript算法试题系列-08

问题描述:

1
2
3
// 递归二进制转换通过某个递归函数将输入的数字转化为二进制字符串:decimalToBinary(3); // 11
decimalToBinary(8); // 1000
decimalToBinary(1000); // 1111101000

解答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function decimalToBinary(digit) {
if(digit >= 1) {
// If digit is not divisible by 2 then recursively return proceeding
// binary of the digit minus 1, 1 is added for the leftover 1 digit
if (digit % 2) {
return decimalToBinary((digit - 1) / 2) + 1;
} else {
// Recursively return proceeding binary digits
return decimalToBinary(digit / 2) + 0;
}
} else {
// Exit condition
return '';
}
}
------ 本文结束 ------