problem 16

project euler 問題 16 です。(関係ないけど何でこの段落だけ字下げ幅が大きいのだろう?なんでなん?)

2^1000 の全ての数字の和を求める問題。

(use srfi-1)

(define (p16)
  (fold (lambda (x n) (+ (digit->integer x) n))
        0
        (string->list (number->string (expt 2 1000)))))

(print (p16))

分かったこと

  • expt で x^y を求めることができる。
  • number->string で数値を文字列に変換できる。
  • string->list で文字列を文字のリストに変換できる。
  • digit->integer で文字を数値に変換できる。