'3n+1'에 해당되는 글 1건

  1. 2020.04.22 3nPlus1
Problems/Level32020. 4. 22. 20:52

[알고리즘 트레이닝북 문제]

어떤 정수 n이 짝수면 2로 나누고 홀수면 3을 곱한후 1을 더하여 n=1 될때까지 같은 작업을 반복합니다.

(아직 증명되지는 않았지만 모든 정수 n에 대해 이 알고리즘을 적용시키면 n=1에 이르게 된다고 추측하고 있습니다.
그리고 이 가설은 적어도 1,000,000까지의 정수에 대해서는 참입니다.)

정수값 n으로 부터 1되기까지 만들어진 수의 개수를 n의 사이클 길이(cycle-length)라고 합니다.

예) n=22
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
cycle-length : 16

입력값은 a와 b사이의 정수 중에서 사이클 길이가 가장 큰 정수를 구해 출력하고 1이 되기까지의 과정과
사이클 길이를 출력합니다. (사이클 길이가 똑같은 수가 있다면 작은 수를 출력)

INPUT

1500
2000
 
OUTPUT

Number : 1665
Cycle-length : 180
  1665   4996   2498   1249   3748   1874    937   2812   1406    703
  2110   1055   3166   1583   4750   2375   7126   3563  10690   5345
 16036   8018   4009  12028   6014   3007   9022   4511  13534   6767
 20302  10151  30454  15227  45682  22841  68524  34262  17131  51394
 25697  77092  38546  19273  57820  28910  14455  43366  21683  65050
 32525  97576  48788  24394  12197  36592  18296   9148   4574   2287
  6862   3431  10294   5147  15442   7721  23164  11582   5791  17374
  8687  26062  13031  39094  19547  58642  29321  87964  43982  21991
 65974  32987  98962  49481 148444  74222  37111 111334  55667 167002
 83501 250504 125252  62626  31313  93940  46970  23485  70456  35228
 17614   8807  26422  13211  39634  19817  59452  29726  14863  44590
 22295  66886  33443 100330  50165 150496  75248  37624  18812   9406
  4703  14110   7055  21166  10583  31750  15875  47626  23813  71440
 35720  17860   8930   4465  13396   6698   3349  10048   5024   2512
  1256    628    314    157    472    236    118     59    178     89
   268    134     67    202    101    304    152     76     38     19
    58     29     88     44     22     11     34     17     52     26
    13     40     20     10      5     16      8      4      2      1

Posted by adhoc