Project Euler 17
整数から英語表記への変換は、CLISP の format
関数を使いました。
;;; Project Euler 17 ;;; $ clisp english.lisp ;;; (format nil "~R" 342) ;=> "three hundred and forty-two" (23 letters) ;;; (format nil "~R" 115) ;=> "one hundred and fifteen" (20 letters) (defun main () (dotimes (i 1000) (format t "~R~%" (1+ i)))) (main)
1 から 1000 までの数字を英語表記に変換したものを、english.txt に書き出します。
$ clisp english.lisp > english.txt
C# プログラムでは、english.txt を読み込み、文字数をカウントしました。
using System; using System.IO; class PE017 { static void Main() { int ans = 0; foreach (char c in File.ReadAllText("english.txt")) { if (char.IsLetter(c)) { ans++; } } Console.WriteLine(ans); } }
参考: