2017-08-23 4 views
1

私はローマ数字として、いくつかの数字を印刷したいが3,999を超えるローマ数字を印刷するにはどうすればいいですか?

(format t "[email protected]~%" 4000) 

はSBCL 1.3.20に次のエラーとCCLを使用して同様のものにつながる:

Number too large to print in Roman numerals: 4,000 
    [Condition of type SIMPLE-ERROR] 

Restarts: 
0: [RETRY] Retry SLIME REPL evaluation request. 
1: [*ABORT] Return to SLIME's top level. 
2: [ABORT] abort thread (#<THREAD "new-repl-thread" RUNNING {100503D2B3}>) 

私はに関する情報を見つけることができませんでしたこの制限はHyperspecであり、ローマ人は3,999人にしかならなかったことに気付かなかった。

ローマ数字として3,999を超える数字を印刷するためのすぐに使用できるソリューションはありますか?

+1

で実際にはこれはCommon Lispの制限ではなく、ローマ数字に固有のものです。 3999以上の数字については、ローマ人は1000を掛ける数字の上に1行を追加しました。 – Renzo

答えて

6

ローマ人の間では、large number representationのコンセンサスはありませんでした。論争を解決するために、特にローマ人によって使用された両方のアプローチ( "apostrophus"と "vinculum")がTTY上のASCIIでの表現には不適切であることから、CL実装者は論じた。

PS。 3.999IV ;-)

+1

数字の書式を英語の標準に編集しました;-) –

関連する問題