fork download
  1. #include <stdio.h>
  2.  
  3. // 整数nが1に到達するまでの操作回数 K(n) を計算する関数//
  4.  
  5. int calculate_k(long long n) {
  6. int count = 0;
  7. while (n != 1) {
  8. if (n % 2 == 0) {
  9. n = n / 2; // 偶数の場合
  10. } else {
  11. n = 3 * n + 1; // 奇数の場合
  12. }
  13. count++;
  14. }
  15. return count;
  16. }
  17.  
  18. int main() {
  19. printf("n, K(n)\n"); // ヘッダー出力
  20.  
  21. // n=1から100までループを回して計算
  22. for (int i = 1; i <= 100; i++) {
  23. int k = calculate_k(i);
  24. printf("%d, %d\n", i, k);
  25. }
  26.  
  27. return 0;
  28. }
  29.  
  30.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
n, K(n)
1, 0
2, 1
3, 7
4, 2
5, 5
6, 8
7, 16
8, 3
9, 19
10, 6
11, 14
12, 9
13, 9
14, 17
15, 17
16, 4
17, 12
18, 20
19, 20
20, 7
21, 7
22, 15
23, 15
24, 10
25, 23
26, 10
27, 111
28, 18
29, 18
30, 18
31, 106
32, 5
33, 26
34, 13
35, 13
36, 21
37, 21
38, 21
39, 34
40, 8
41, 109
42, 8
43, 29
44, 16
45, 16
46, 16
47, 104
48, 11
49, 24
50, 24
51, 24
52, 11
53, 11
54, 112
55, 112
56, 19
57, 32
58, 19
59, 32
60, 19
61, 19
62, 107
63, 107
64, 6
65, 27
66, 27
67, 27
68, 14
69, 14
70, 14
71, 102
72, 22
73, 115
74, 22
75, 14
76, 22
77, 22
78, 35
79, 35
80, 9
81, 22
82, 110
83, 110
84, 9
85, 9
86, 30
87, 30
88, 17
89, 30
90, 17
91, 92
92, 17
93, 17
94, 105
95, 105
96, 12
97, 118
98, 25
99, 25
100, 25