09/12/26 00:00:33
>>12 使用言語: 十進BASIC 計算だけで反転するのと文字列に変換して反転するのを比べてみた。
FUNCTION f1(n)
LET r=0
DO WHILE n>0
LET r=r*10+MOD(n,10)
LET n=INT(n/10)
LOOP
LET f1=r
END FUNCTION
FUNCTION f2(n)
LET s1$=STR$(n)
LET s2$=s1$
LET b=LEN(s1$)
FOR i=1 TO b
LET s2$(b-i+1:b-i+1)=s1$(i:i)
NEXT I
LET f2=VAL(s2$)
END FUNCTION
LET st=TIME
FOR i=1 TO 1000000
LET a=f1(123456789)
NEXT I
PRINT "f1";TIME -st;"sec"
LET st=TIME
FOR j=1 TO 1000000
LET a=f2(123456789)
NEXT J
PRINT "f2";TIME -st;"sec"
END
f1 3.63000000000466 sec
f2 24.5599999999977 sec