仕事:
あなたのプログラムには、形式で適切で正の単純分数が与えられます<numerator>/<denominator>
。
この入力では、2つの分数を見つける必要があります。
- 入力より少ない分数。
- 入力より大きい分数。
両方の分数は、入力よりも低い分母を持つ必要があります。可能なすべての小数のうち、入力との差が最も小さいはずです。
出力:
プログラムの出力は次のとおりである必要があります。
- 入力よりも小さい、形式の分数
<numerator>/<denominator>
。 - 空白文字(ASCIIコード32)が続きます。
- 次の形式で、入力より大きい分数が続きます
<numerator>/<denominator>
。
次のように:
«fraction that is < input» «fraction that is > input»
ルール:
- 出力されるすべての小数部は最低条件でなければなりません。
- 出力されるすべての分数は適切な分数でなければなりません。
- ルールで許可されている適切な分数がない場合
0
は、分数<入力では1
なく、分数>入力ではなく出力する必要があります。 - 分数をコマンドライン引数として受け取るかどうかを選択できます(例:
yourprogram.exe 2/5
、ユーザー入力のプロンプトを表示。 - あなたのプログラムが無効な入力を受け取らないと仮定するかもしれません。
- 最短のコード(バイト単位、任意の言語)が優先されます。
非標準のコマンドライン引数(通常、スクリプトの実行に必要ではない引数)は、合計文字数にカウントされます。
あなたのプログラムがしてはいけないこと:
- 外部リソースに依存します。
- 特定のファイル名を持つことに依存します。
- 必要な出力以外を出力します。
- 実行に非常に長い時間がかかります。プログラムが6桁の分子と分母を持つ分数で1分以上実行される場合(例:
179565/987657
平均的なホームユーザーのコンピューターで、それは無効です。 0
分母として分数を出力します。ゼロで割ることはできません。0
分子として分数を出力します。プログラム0
は、分数ではなく出力する必要があります。- 入力した分数を減らします。入力として指定された分数が還元可能な場合、入力された分数を使用する必要があります。
- あなたのプログラムは、このチャレンジが投稿される前に公的に利用可能なコンパイラ/インタプリタが存在しなかったプログラミング言語で書かれていてはなりません。
例:
入力: 2/5
出力: 1/3 1/2
入力: 1/2
出力: 0 1
入力: 5/9
出力: 1/2 4/7
入力: 1/3
出力: 0 1/2
入力: 2/4
出力: 1/3 2/3
入力: 179565/987657
出力: 170496/937775 128779/708320
1/3 1/2
。