これは一般的なテーマであることは認識していますが、自分のコードで探しているものを見つけることができず、何が問題なのかを見つけることができない場合、他のすべての回答が意味をなさないことがあります。
ユーザーがクエリを実行する値に対して Collatz 再帰を実装し、その数値が 1 に達するまでに必要なステップ (反復) の数を返す必要があります。
int main(void)
{
int m,n,count;
printf("Enter a value for 'n': ");
scanf("%d",&n);
m = n;
count = 0;
if (m != 1) {
if (m%2 == 0); {
m = m/2;
count++;
}
if (m%2 == 1) {
m = m*3+1;
count++;
}
}
if (m==1)
return count;
printf("The number %d takes %d iterations to reach '1'",n,count);
return 0;
}
どんなアドバイスも素晴らしいでしょう。私の考えでは、このコード ( if (m != 1)
) は毎回新しい値を返し、m
そのたびに値が加算されるというものでした。