divide(int a, int b, int c)
Temel 10 değerini yazdıran bir işlev uygulayın a/b
. herhangi kayan nokta matematik ne de kullanmadan BigInteger
/ BigDecimal
veya herhangi eşdeğer kütüphaneleri. Aşağıdaki 4. maddede yer alan (olası) istisna dışında c
, kümesindeki en az doğru karakterler 0123456789.
yazdırılmalıdır.
a
veb
herhangi bir 32 bit tam sayı olabilir. Güncelleme: Golf amacıyla, girişin 64 bit ilkel olması iyi olur, ancak 64 bit veri aralığının tamamını desteklemeniz gerekmez.- Eğer
c
pozitif değilse (umarım programınız çökmezse) pozitif olup olmadığını kontrol etmenize gerek yoktur. - Asgari üst giden desteklenen
c
IS500
. Programınızc
yukarıdaki değerleri desteklemiyorsa500
, aynı zamanda destekliyorsa da iyidir. - Eşit olarak bölünen sayılar için, ekstra sıfır (değerine bağlı olarak
c
) veya hiçbir şey yazdırmamak sizin seçiminizdir . - Bölümle başka görevler yapmak için işlevi kullanmanıza gerek yoktur, tek hedef yazdırmaktır.
- Arasındaki numaraları için
-1
ve1
, bir lider yazdırmak ister tercihinizdir0
. Ancak, baştaki sıfırı yazdırmanın kabul edilebilir olduğu tek senaryo budur ve böyle bir sıfırı yalnızca bir tane yazdırabilirsiniz. - Son ondalık basamak için tercih ettiğiniz herhangi bir yuvarlama / zemin / tavan mantığını kullanabilirsiniz.
- Olumsuz bir cevap için bir satır aralığı yazdırmalısınız
-
. Bu dikkate alınmazc
. Yazdırmak istediğiniz Ancak, bu sizin tercihinizdir,
+
ya olumlu cevap vermesini şey. - Tamsayı bölünmesine ve tamsayı modülüne izin verilir. Bununla birlikte, kod uzunluğuna göre sayılan kendi
BigInteger
/BigDecimal
kütüphanenizi uygulamayı seçmediğiniz sürece, ilkel öğelerle sınırlı olduğunuzu unutmayın . - Var
b
olmakla uğraşmanıza gerek yok0
, ancak isterseniz yapabilirsiniz. Programınız sonsuz bir döngü girebilir veya çökebilirb=0
ve cezalandırılmayacaksınız. - Yorum başına hafif kural değişikliği. İken yapmak için emin Oyun alanını düzeyidir
a
veb
32 bitlik tamsayılar olmasını garanti altına alınmıştır 64 bit uzunluğunda tamsayı kullanabilir. Seçtiğiniz dil bir ilkel olarak 64 bit tam sayıların ötesine geçiyorsa, hiçbir noktada bu işlevselliği kullanamazsınız (64 bit ile kaplanmış gibi davranabilirsiniz). - Belirsiz olan başka bir nokta (mevcut geçerli cevapların hiçbirini değiştirmemelidir):
c
basılı karakter sayısı veya ondalık basamaktan sonraki boşluk sayısı olarak yorumlanabilirken, programınız birc
şekilde ilgili bir şekilde kullanmalıdır. kaç karakter basılacağına karar vermek için. Başka bir deyişle,divide(2,3,2)
çıktı çok daha kısa olmalıdırdivide(2,3,500)
; 500 karaktere bakmaksızın basmak uygun değilc
. - Aslında işlevin adını umursamıyorum.
d
golf için uygundur.
Giriş
Hem işlev çağrısı hem de okuma değeri stdin
kabul edilir. Eğer okursanız stdin
, kümede olmayan herhangi bir karakter [-0123456789]
bağımsız değişken sınırlayıcısı olarak kabul edilir.
Çıktı
stdout
Yukarıda açıklandığı gibi karakterler .
Misal
için divide(2,3,5)
aşağıdakilerin tümü kabul edilebilir çıktılardır:
0.666
0.667
.6666
.6667
0.666
0.667
.6666
.6667
+0.666
+0.667
+.6666
+.6667
Başka bir örnek: divide(371,3,5)
aşağıdakiler için tüm kabul edilebilir çıktılar:
123.6
123.7
123.6
123.7
+123.6
+123.7
123.66666
123.66667
123.66666
123.66667
+123.66666
+123.66667
Ve divide(371,-3,5)
aşağıdakiler için kabul edilebilir:
-123.6
-123.7
-123.66666
-123.66667
92,3,5
cevap verdiyseniz, örneğin,30.67