レオナルドダピサーノ(別名フィボナッチ)は、ヒンドゥーアラビア数字システムをヨーロッパに持ち込むことに貢献しました。その前に、そこの数学者はローマ数字で60を底に働いた。
たとえば、2の平方根は次のように概算できます:60分の1から24の部分、360分の51の部分、およびi xxiv liとして記述されます。スケーリングはコンテキストによって決定されます。当時、「無」は知られていました(つまりゼロ)が、この数体系には標準的な表現がありませんでした。
フィボナッチが旅行中に出会ったこれらの新しい小数の数字を無視していたなら、彼は確かに現在のシステムの欠陥に対処していたでしょう。この改善されたシステムを、フィボナッチの六十進数と呼びます。
あなたの仕事は、ASCII形式またはバイナリ形式の浮動小数点数を取り、60を基数とするローマ数字で出力するプログラム、関数、またはコードスニペットを記述することです。入力はファイル、コンソール、コマンドライン、または関数の引数であり、出力はファイルまたはコンソールのいずれか最も簡単なものです。
出力は大文字でも小文字でもかまいませんが、これらの改善を含める必要があります。
- nまたはNを使用して、場所に値がない、つまり「ゼロ」(システムの問題)を意味するnullを示します。
- eまたはEを使用して、六十進点に対応するetを示します(システムの別の問題)
- 中央のドット・またはアスタリスク*を使用して、ローマ数字のグループを区切ります(システムの別の問題)
入力がlix・lix・lix・lix・lix以下の仮数を持つ浮動小数点になると仮定します。n・e・n・n・n・n・i未満の分数は無視できます。したがって、入力にこれらの制限がある場合、1つのeを持つローマ数字のグループを最大10個出力できます。
コンテキストが明確になるように、iより小さい数字には先頭にn・eが必要です。
いくつかの例:input
→ 出力
0
→ n1
→ i60
→ i・n0.1
→ n・e・vi3600
→ i・n・n10.5
→ x・e・xxx16777215
→ i・xvii・xl・xx・xv3.1415926536
→ iii・e・viii・xxix・xliv・n・xlvii
出力では、仮数部の不要な先行n・、孤立e、または出力の小数部の末尾・nを避ける必要があります。そのため、たとえば、n・n・n・n・i、i・e、およびi・e・n・n・n・n・nは、の入力に対して誤った出力です1
。
出力のプラスまたはマイナスn・e・n・n・n・n・iの差は許容範囲内で許容範囲内です。
入力は、選択した言語の正当な浮動小数点であるため、入力が上記で指定した範囲外にない限り、正または負の指数を含めることができます。
そして最後に、ローマ数字の組み込みが許可されています!