!コラッツ・角谷の問題
LET st = TIME
LET n = 2^20
DIM c(n)
FUNCTION f(k)
IF k = 1 THEN
LET f = 0
ELSEIF k <= n AND c(k) <> 0 THEN
LET f = c(k)
ELSE
IF MOD(k,2) = 0 THEN
LET s = f(k / 2) + 1
ELSE
LET s = f((3 * k + 1) / 2) + 2
END IF
IF k <= n THEN LET c(k) = s
LET f = s
END IF
END FUNCTION
LET mx = f(n)
LET no = n
FOR i = 3 TO n STEP 2
LET j = f(i)
IF j > mx THEN
LET mx = j
LET no = i
END IF
NEXT I
PRINT "f(";no;") =";mx
PRINT TIME - st;"sec"
END
pooq
#5276()
[
BASIC
]
Rating0/0=0.00
!コラッツ・角谷の問題 LET st = TIME LET n = 2^20 DIM c(n) FUNCTION f(k) IF k = 1 THEN LET f = 0 ELSEIF k <= n AND c(k) <> 0 THEN LET f = c(k) ELSE IF MOD(k,2) = 0 THEN LET s = f(k / 2) + 1 ELSE LET s = f((3 * k + 1) / 2) + 2 END IF IF k <= n THEN LET c(k) = s LET f = s END IF END FUNCTION LET mx = f(n) LET no = n FOR i = 3 TO n STEP 2 LET j = f(i) IF j > mx THEN LET mx = j LET no = i END IF NEXT I PRINT "f(";no;") =";mx PRINT TIME - st;"sec" ENDRating0/0=0.00-0+
[ reply ]