0
我正在寫一個遞歸方法來計算正整數序列的collatz猜想。但是,當數值達到1時不是停止計算,而是當數值變得小於或等於原始值時,我需要停止計算。我無法弄清楚我應該在if語句中加入什麼條件。C遞歸Collatz猜想,直到值小於原始整數
int collatz (int n) {
printf("%d%s", n, " ");
if(n > collatz(n)) { // here I would get an error saying all path leads to the method itself
return n;
}
else {
if(n % 2 == 0) {
return collatz(n/2);
}
else {
return collatz((3 * n) + 1);
}
}
}
考慮傳遞兩個參數,例如, 'int collatz(int start,int n)'。 – user3386109