c++中的递归Collatz函数



为了计算为了得到结果1必须实现Collatz猜想的次数,我实现了一个递归计数器函数,它使用两个参数,特别是数字和计数器。

unsigned int count_collatz_rec(int num, unsigned int count) {
if(num == 1){
count = count + 0;
}
else{
count++;
num = collatz(num);
count = count_collatz_rec(num, count);
}
return count;
}

是否有任何方法实现这个函数只使用一个参数,特别是'num'?

我认为这样可以工作:

unsigned int count_collatz_rec(int num)
{
return (num <= 1) ? 1 : 1 + count_collatz_rec(collatz(num));
}

最新更新