我需要一个快速算法,它将所有可能的数字生成到一个数组中,直到给定数字 N 二进制。
e.g N=3
Then the array should be {0,0,0},{0,0,1}.....{1,1,1}
N<=17.
到目前为止,我已经尝试过这是一个递归解决方案。
void print_digits(int n, std::string const& prefix = "") {
if (!n) {
printf("%s,",prefix.c_str());
return;
}
print_digits(n-1, prefix + '0');
print_digits(n-1, prefix + '1');
}
我需要一个更好的算法。