gpt4 book ai didi

c++ - 递归回溯打印长度为 N 的二进制数的所有组合而不使用循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:41 25 4
gpt4 key购买 nike

需要帮助来使用递归和无循环打印二进制数字的所有组合。

void printBinary(int n)
{
if(n==1)
{
cout << "0" << endl;
cout << "1" << endl;
}
else
{
// How do I call?
}

}

printBinary(3) 的示例输出:

000
001
010
011
100
101
110
111

最佳答案

你的递归问题是你没有保存你的答案

这部分会给你带来困难:

if(n==1)
{
cout << "0" << endl;
cout << "1" << endl;
}

从那些部分,我认为你想要“递归的每个状态,打印对应的数字,然后在第 n 次递归后打印最后一个数字”

如果你认为“递归的每个状态,确定数字值然后将其传递给其他状态,然后在第n次递归后打印传递的值”会更容易

这是我用 C++ 实现它的方式:

void bin(int n, string answer){
if(n==0){
cout << answer << endl;
}else{
bin(n-1, answer+"0");
bin(n-1, answer+"1");
}
}

当你调用它时 bin(3,"") 它会给你:

000
001
010
011
100
101
110
111

关于c++ - 递归回溯打印长度为 N 的二进制数的所有组合而不使用循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51373438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com