0

これは一般的なテーマであることは認識していますが、自分のコードで探しているものを見つけることができず、何が問題なのかを見つけることができない場合、他のすべての回答が意味をなさないことがあります。

ユーザーがクエリを実行する値に対して Collat​​z 再帰を実装し、その数値が 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そのたびに値が加算されるというものでした。

4

0 に答える 0