fork download
  1. #include <stdio.h>
  2.  
  3. /*
  4.   関数 K(n)
  5.   n が 1 になるまでの操作回数を返す
  6. */
  7. int K(int n) {
  8.  
  9. int count = 0;
  10.  
  11. while (n != 1) {
  12.  
  13. // n が偶数の場合
  14. if (n % 2 == 0) {
  15. n = n / 2;
  16. }
  17.  
  18. // n が奇数の場合
  19. else {
  20. n = 3 * n + 1;
  21. }
  22.  
  23. // 操作回数を増やす
  24. count++;
  25. }
  26.  
  27. return count;
  28. }
  29.  
  30. int main(void) {
  31.  
  32. int n;
  33.  
  34. printf(" n\tK(n)\n");
  35. printf("----------------\n");
  36.  
  37. // n = 1 から 100 まで調べる
  38. for (n = 1; n <= 100; n++) {
  39.  
  40. // K(n) を表示
  41. printf("%3d\t%3d\n", n, K(n));
  42. }
  43.  
  44. return 0;
  45. }
  46.  
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