JavaScript 中使用递归进行十进制到二进制的转换

javascriptweb developmentfront end technologyobject oriented programming

我们需要编写一个 JavaScript 函数,该函数将数字作为第一个也是唯一的参数。该函数应使用递归来构造表示该数字的二进制表示法的字符串。

例如 −

f(4) = '100'
f(1000) = '1111101000'
f(8) = '1000'

示例

以下是代码 −

const decimalToBinary = (num) => {
   if(num >= 1) {
      // 如果 num 不能被 2 整除,则递归返回继续
      // num 减 1 的二进制数,剩余的 1 num 加 1
      if (num % 2) {
          return decimalToBinary((num - 1) / 2) + 1;
      } else {
         // 递归返回继续的二进制数字
         return decimalToBinary(num / 2) + 0;
      }
   } else {
      // 退出条件
      return '';
   };
};
console.log(decimalToBinary(4));
console.log(decimalToBinary(1000));
console.log(decimalToBinary(8));

输出

以下是控制台上的输出 −

100
1111101000
1000

相关文章