自然数の桁数続きの続き
前回: 自然数の桁数つづき - 日記を書く [・w・] はやみずさん
実験してみたら、でかけりゃいいってもんでもないらしい。
gosh> (define (log10 x) (/ (log x) (log 10))) log10 gosh> (for-each print (map log10 (map (cut expt 10 <>) (iota 30 1)))) 1.0 2.0 2.9999999999999996 4.0 5.0 5.999999999999999 7.0 8.0 8.999999999999998 10.0 11.0 11.999999999999998 12.999999999999998 14.0 14.999999999999998 16.0 17.0 17.999999999999996 19.0 20.0 20.999999999999996 22.0 22.999999999999996 23.999999999999996 25.0 25.999999999999996 26.999999999999996 28.0 28.999999999999993 29.999999999999996 #<undef>
このままでは引き下がれないっ、、、
gosh> (define (digit-len num) (round (log10 num))) digit-len gosh> (digit-len (expt 10 18)) 18.0
orz