コラッツの予想の問題をシミュレートしているときに、再帰でカウント数を出力したいときに再帰を作成しましたが、必要な結果が得られますが、関数が結果を返すと、奇妙な数が得られます。それはなぜですか?
#include <stdio.h>
#include <stdlib.h>
int divide(int n,int count){
if(n<=1){printf("%d ",count);return count;}
if(n%2==1){divide(n=3*n+1, ++count);}
else{divide(n/=2, ++count);}
}
int main(void) {
printf("%d ",divide(10,1));
return 0;
}