#include <stdio.h>
/*
    1. n が偶数なら n → n / 2
    2. n が奇数なら n → 3n + 1

    この操作を繰り返し，
    1 に到達するまでの回数を K(n) とする。
    
    問題文から関数のKを使用
    整数を返すint
*/
int K(int n) {
	 // 操作回数を保存する変数　最初は何もやっていないので０
    int count = 0;

    // n が 1 になるまで繰り返す　操作を繰り返すからwhile文を使用
    while (n != 1) {

        // n が偶数の場合
        if (n % 2 == 0) {
            n = n / 2;
        }

        // n が奇数の場合
        else {
            n = 3 * n + 1;
        }

        // 操作を1回行ったので回数を増やす
        count++;
    }
      // 求めた操作回数を返す

    return count;
}

int main(void) {

    int n;
  // 文字を画面に表示する
    printf(" n\tK(n)\n");
      // タイトルとデータを見やすく区切るための線
    printf("----------------\n");

    /*
        n = 1 から 100 までについて
        K(n) を計算して表示する
    */
    for (n = 1; n <= 100; n++) {

        printf("%3d\t%3d\n", n, K(n));
    }

	return 0;
}
