gpt4 book ai didi

c++ - 在递归期间将值存储在字符串中

转载 作者:行者123 更新时间:2023-12-02 19:41:55 25 4
gpt4 key购买 nike

我想将递归函数生成的值存储在字符串中,但我不确定如何在循环的每次迭代后保留。我不一定要寻找您来解决所附代码所特有的问题,但我认为它会给它一些上下文。当然,欢迎简单地评论我可以学习这一点的资源。谢谢

int HailstoneNumbers(int N)
{
vector <char> sequence;
static int c;

cout << N << " ";

if (N == 1 && c == 0) {

// N is initially 1.
return c;
}
else if (N == 1 && c != 0) {

// N is reduced to 1.
c++;
return c;
}
else if (N % 2 == 0) {

// If N is Even.
c++;
HailstoneNumbers(N / 2);
}
else if (N % 2 != 0) {

// N is Odd.
c++;
HailstoneNumbers(3 * N + 1);
}
}

最佳答案

如果你想存储N值,您可以将它们存储在 vector 中,如下所示

int HailstoneNumbers(int N, vector<int>& sequence)
{
int c;

sequence.push_back(N);

if (N == 1 && c == 0) {

// N is initially 1.
return c;
}
else if (N == 1 && c != 0) {

// N is reduced to 1.
c++;
return c;
}
else if (N % 2 == 0) {

// If N is Even.
c++;
HailstoneNumbers(N / 2, sequence);
}
else if (N % 2 != 0) {

// N is Odd.
c++;
HailstoneNumbers(3 * N + 1, sequence);
}
}

在调用函数之前声明一个 vector vector<int> sequence;然后使用 N 调用您的函数和这个 vector

关于c++ - 在递归期间将值存储在字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760729/

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