在 JavaScript 中使用递归将十进制转换为二进制


我们需要编写一个 JavaScript 函数,该函数以一个数字作为第一个且唯一参量。该函数应该使用递归生成一个字符串,该字符串代表该数字的二进制表示形式。

例如 -

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

示例

以下为代码 -

const decimalToBinary = (num) => {
   if(num >= 1) {
      // If num is not divisible by 2 then recursively return proceeding
      // binary of the num minus 1, 1 is added for the leftover 1 num
      if (num % 2) {
         return decimalToBinary((num - 1) / 2) + 1;
      } else {
         // Recursively return proceeding binary digits
         return decimalToBinary(num / 2) + 0;
      }
   } else {
      // Exit condition
      return '';
   };
};
console.log(decimalToBinary(4));
console.log(decimalToBinary(1000));
console.log(decimalToBinary(8));

输出

以下为控制台输出 -

100
1111101000
1000

更新日期: 2020-12-10

398 人浏览

开启你的 职业

完成课程,获得认证

立即开始
广告