我必须打印出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/