gpt4 book ai didi

c++ - 在我的递归函数中跟踪计数 (Collat​​z)

转载 作者:行者123 更新时间:2023-11-30 04:19:20 31 4
gpt4 key购买 nike

我无法弄清楚如何跟踪我的递归函数在执行 collat​​z 函数时调用自身的次数。我有函数定义:

template<class myType>
myType recursionSet<myType>::collatz(myType n)
{
if(n == 1)
return 1;
else {
if(n%2 == 1)
return collatz(3*n+1);
else
return collatz(n/2);
}
}

我如何跟踪此函数调用自身的次数?我似乎一辈子也想不出解决办法。谢谢!

引用 collat​​z 函数:http://www.xamuel.com/collatz-recursion/

最佳答案

您正在尝试计算 Collat​​z 链的长度,对吗?您是否意识到目前您总是返回 1?您应该修改代码以返回计数。这意味着将当前迭代添加到递归调用中:

template<class myType>
myType recursionSet<myType>::collatz(myType n)
{
if(n == 1)
return 1;
else {
if(n%2 == 1)
return 1 + collatz(3*n+1);
else
return 1 + collatz(n/2);
}
}

关于c++ - 在我的递归函数中跟踪计数 (Collat​​z),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15892421/

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