javascript - 递归方法中的组合

标签 javascript

我必须打印出0和1的组合 如果我有 3 位数字,输出应该是这样的:

000 001 010 011 100 101 110 111

我知道这涉及到2^n的概念,但是我尝试了很多算法和逻辑,但没有成功

这是我到目前为止所拥有的:

void combination( number)    {
    if(number == 0) {
        printf("\n");
        return;
    }
    combination(number - 1);
    printf("0");
    combination(number - 1);
    printf("1");
}

最佳答案

您实际上并不需要递归。

var print = function(num, digits) {
   var str = num.toString(2), diff = digits - str.length;
   return diff > 0 ? "0".repeat(diff) + str : str;
}, 
printAll = function(digits) {
   var i = 0, len = Math.pow(2, digits), result = [];
   for(; i < len; i++) {
     result.push(print(i, digits));
   }
   return result;
}

console.log(printAll(3))

关于javascript - 递归方法中的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19660502/

相关文章:

javascript - 无法在触摸事件中聚焦 DOM 元素

javascript - 小书签的执行环境与浏览器控制台相同吗?

javascript - CKEditor 破坏了我的其他 js 应用程序,如何加载我自己的 js 文件

javascript - 使用 HTML 和 js 中的按钮填充图像或矢量路径

javascript - 如何向 Node.js HTTP 请求添加自定义值以供 Express 使用

javascript - 如何从rails中的javascript调用 Controller 方法

javascript - 在 Kinetic.js 中,原型(prototype)节点不会影响所有子节点?

javascript - Backbone 中的类方法

javascript - 更改 html 表单值,加载页面并单击按钮

JavaScript 和 Promise : how to refactor/flatten the following nested promises?