Amacınız, girdi kesiri için en kısa benzersiz ondalık dizilimini çıkaran bir kod yazmaktır. Aynı paydaya sahip iki fraksiyon aynı çıktıya sahip olamaz, ancak farklı paydalara sahip fraksiyonların aynı temsile sahip olması mümkündür.
Giriş olarak 2 tamsayı alın , ilki pay, ikincisi payda.
Örneğin:
n d output
----- ------
0 13: 0.00
1 13: 0.07
2 13: 0.1
3 13: 0.2
4 13: 0.30
5 13: 0.38
vb.
3/13
, 13 paydası ile başlayan tek kesirdir 0.2
, bu nedenle başka basamak gerekmez. 4/13
ve 5/13
her ikisi de ile başlar 0.3
, bu yüzden aralarında ayrım yapmak için başka bir basamak gerekir.
Çıktı tutarlı olduğu sürece ondalık noktadan önce sıfır ile veya sıfır olmadan -1'den büyük ve 1'den küçük sayılar çıktısı alabilirsiniz, yani 0.5
ve.5
aynı sayı olduğu ve her ikisi de geçerli . Başlıca sıfırlara izin verilmez. Çıktıyı başka bir değerden ayırt etmek gerekirse, sondaki sıfırlar gösterilmelidir.
Sıfırdan uzağa herhangi bir sayı yuvarlayamazsınız; kesilmeleri gerekir. Ön veya arka boşluk olmamalıdır. İsteğe bağlı olarak tek bir son satır olabilir.
Daha fazla test değeri:
n d output
---------- ------
0 1: 0 (this 0 may not be removed because there's no decimal point)
5 1: 5
0 3: 0.0 (or .0)
4 3: 1.3
5 3: 1.6
10 8: 1.2
11 8: 1.3
12 8: 1.5
-496 -38: 13.05
458 -73: -6.27
70 106: 0.660 (or .660)
255 123: 2.07
256 -123: -2.081
-257 -123: 2.089
-258 123: -2.09
258 -152: -1.697
-259 152: -1.70
260 152: 1.710
272 195: 1.39
380 247: 1.538
455 -455: -1.000
-44 891: -0.049 (or -.049)
123 1234: 0.099 (or .099)
Her durumda, çıkış ve payda, payın benzersiz bir şekilde çalışması için yeterlidir.
/b
vei
karşıp
olabilir, siz de öyle iç kod bunlarıp
kendisi ve sadece tek bir parametre alır. Ayrıca cevap sadecen
tekrar hesaplamak zorunda değilsiniz. Ben sadece 86 bayt buna dayalı gevşek özyinelemeli bir ES6 sürümü var ...