divide(int a, int b, int c)のベース10値を出力する関数を実装しますa/b。浮動小数点演算もBigInteger/ BigDecimalまたは同等のライブラリも一切使用しません。以下の4の(可能性のある)例外を除きc、のセット内の少なくとも正確な文字を0123456789.印刷する必要があります。
aそしてb、任意の32ビットの整数であってもよいです。更新:ゴルフの目的で、入力に問題のない64ビットプリミティブを使用する場合は、64ビット範囲のデータ全体をサポートする必要はありません。- そうでない場合は、それ
cが正であることを確認する必要はありません(ただし、プログラムがクラッシュしないことを願っています)。 - のサポートされる最小の上限
cは500です。プログラムがc上記の値をサポートしていない場合でも問題ありませんが、サポート500している場合でも問題ありません。 - 数値が均等に分割される場合、余分なゼロを(の値に基づいて)印刷するか
c、何も印刷しないかを選択できます。 - この関数を使用して商でさらにタスクを実行する必要はありません。唯一の目標は印刷です。
-1との間の数値について1は、先頭を印刷するかどうかを選択します0。ただし、これは先行ゼロの印刷が許容される唯一のシナリオであり、このようなゼロを1つだけ印刷できます。- 最後の小数位には、任意の丸め/フロア/セルロジックを使用できます。
- 否定的な答えを得るには、先頭に
-。を印刷する必要があります。これはにカウントされませんc。しかし、それはあなたが印刷したい場合はあなたの選択ではない、+または肯定的な回答のために何も。 - 整数除算と整数モジュラスの両方が許可されます。ただし、コードの長さに対してカウントされる独自の
BigInteger/BigDecimalライブラリを実装することを選択しない限り、プリミティブに制限されることに注意してください。 - あなたが処理する必要がありません
bという0ことができますけれども、あなたがしたい場合は、。プログラムが無限ループに入るか、ifがクラッシュすると、b=0ペナルティは科せられません。 - コメントごとにわずかなルール変更。競技場が水平であり
a、b32ビット整数であることが保証されるようにするには、64ビット長整数を使用できます。選択した言語がプリミティブとして64ビット整数を超える場合、その機能を使用することはできません(64ビットで制限されているふりをする)。 - 不明な点(現在の有効な回答は変更しないでください):
c印刷文字数または小数点以下のスペース数として解釈される場合がありますが、プログラムはc何らかの方法で関連する方法で使用する必要があります印刷する文字数を決定します。言い換えれば、divide(2,3,2)よりもはるかに短い出力であるべきdivide(2,3,500)です。に関係なく500文字を印刷することはできませんc。 - 実際、関数の名前は気にしません。
dゴルフの目的には大丈夫です。
入力
関数呼び出しと読み取りの両方stdinが受け入れられます。から読み取る場合stdin、セットにない文字は[-0123456789]引数の区切り文字と見なされます。
出力
stdout上記の文字。
例
の場合divide(2,3,5)、次のすべてが許容可能な出力です。
0.666
0.667
.6666
.6667
0.666
0.667
.6666
.6667
+0.666
+0.667
+.6666
+.6667
別の例:divide(371,3,5)以下については、すべて受け入れられる出力です。
123.6
123.7
123.6
123.7
+123.6
+123.7
123.66666
123.66667
123.66666
123.66667
+123.66666
+123.66667
そしてdivide(371,-3,5)、次のものはすべて受け入れられます:
-123.6
-123.7
-123.66666
-123.66667
92,3,5の答えは、例えば、だろう、30.67