C++中递归的Calutz函数
为了计算Collatz猜想必须实现的次数以得到结果1,我实现了一个递归计数器函数,它使用两个参数,特别是数字和计数器C++中递归的Calutz函数,c++,recursion,collatz,C++,Recursion,Collatz,为了计算Collatz猜想必须实现的次数以得到结果1,我实现了一个递归计数器函数,它使用两个参数,特别是数字和计数器 unsigned int count_collatz_rec(int num, unsigned int count) { if(num == 1){ count = count + 0; } else{ count++; num = collatz(num); count = count_c
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));
}
陛下也许,让我想想。谢谢更新。尽管OP似乎希望如此-我开始认为您在我干预之前就已经知道了-尽管从0开始可能会返回0作为某种错误。尽管如此,无论base OP想要什么,解决方案似乎都是合理的。如果需要,很容易纠正。是的,很容易采用。最好先得到一些反馈,因为OP中没有完整的主文件。无关:ifnum==1{count=count+0;}否则{…最好写为ifnum!=1{…答案肯定是肯定的。但是现在,你能在你的问题中添加collatz的实现吗?