Googolからの引き算
30分プログラム、その796。anarchy golf - Substract from a Googolにインスパイアされて、Googolからの引き算をやってみます。
きっと、32bitの整数しか扱えない処理系でやるとエキサイティングなんでしょうけど、Gaucheだとあっさりできてしましました。ステキだと思います。
使い方
$ gosh googol.scm 0 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 $ gosh googol.scm 1 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 $ gosh googol.scm 123 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999877
ソースコード
#! /opt/local/bin/gosh ;; -*- mode:scheme; coding:utf-8 -*- (define (pow n m) (cond ((eq? m 0) 1) ((even? m) (pow (* n n) (/ m 2))) (else (* n (pow n (- m 1)))))) (define googol (pow 10 100)) (define (main args) (for-each print (map (cut - googol <>) (map string->number (cdr args)))))