Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中递归的Calutz函数_C++_Recursion_Collatz - Fatal编程技术网

C++中递归的Calutz函数

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

为了计算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_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的实现吗?