Hepimiz rasyonel bir sayı ondalık olarak yazıldığında sonucun ya sonlandığını (ya da sonunda) periyodik olduğunu biliyoruz. Örneğin, 41/42 ondalık olarak yazıldığında, sonuç
0.9 761904 761904 761904 761904 761904 761904 761904 ...
ilk basamak dizisini ve 0.9
ardından 761904
tekrar tekrar tekrarlanan diziyi içerir . (Bunun için uygun bir gösterim 0.9(761904)
, parantezlerin tekrarlayan basamak bloğunu çevrelediği yerdir.)
Bu meydan okumadaki amacınız pozitif bir rasyonel sayı almak, tekrarlanan sekansın bir parçası olan ilk haneyi silmek ve ortaya çıkan rasyonel sayıyı döndürmektir. Örneğin, bunu 41/42 olarak yaparsak,
0.9 61904 761904 761904 761904 761904 761904 761904 ...
ya da 0.9(619047)
kısaca 101/105.
Rasyonel sayının 1/4 = 0.25
yaptığı gibi bir sonlu ondalık genişlemesi varsa , hiçbir şey olmamalıdır. 1/4 olarak 0.250000000...
ya 0.249999999...
da böyle düşünebilirsiniz, ancak her iki durumda da, yinelenen parçanın ilk basamağını silmek sayıyı değiştirmeden bırakır.
ayrıntılar
- Giriş, pay ve paydayı temsil eden bir pozitif tamsayı çifti olarak veya (seçtiğiniz diliniz izin veriyorsa ve isterseniz) bir çeşit rasyonel sayı nesnesi olarak pozitif bir rasyonel sayıdır.
- Çıktı aynı zamanda her iki biçimde de rasyonel bir sayıdır. Sonuç bir tamsayı ise, rasyonel bir sayı yerine tamsayıyı döndürebilirsiniz.
- Giriş olarak bir çift sayı alırsanız, bunların nispeten asal olduğunu varsayabilirsiniz; çıktı olarak bir çift sayı üretiyorsanız, bunların nispeten asal olmasını sağlamalısınız.
- Tekrarlayan bir blok başlatan ilk rakamı bulduğunuza dikkat edin . Örneğin, 41/42 olarak yazılabilir,
0.97(619047)
ancak bu 2041/2100 (ondalık genişleme ile0.97(190476)
) geçerli bir yanıt yapmaz . - Sen almak girişteki ilk periyodik rakamdır varsayabiliriz sonra yapım ondalık noktasının
120/11
=10.909090909...
(ilk periyodik haneli düşünülebilir: geçersiz giriş0
bölgesi10
). Böyle bir girdide istediğiniz her şeyi yapabilirsiniz. - Bu kod golf : en kısa çözüm kazanır.
Test senaryoları
41/42 => 101/105
101/105 => 193/210
193/210 => 104/105
104/105 => 19/21
1/3 => 1/3
1/4 => 1/4
2017/1 => 2017/1
1/7 => 3/7
1/26 => 11/130
1234/9999 => 2341/9999
(2017,1)
.)
2/4
, girdide olabilir mi?
120/11
doğru cevap 111/11
veya 210/11
?
111/11
Şu anda en çok oylanan cevabın geri gelmesi dışında şunu söylemek isterim 210/11
, bu yüzden mevcut cevapları geçersiz kılmaktan kaçınmanıza izin vereceğim.
2017
Bunun yerine geri dönebilir miyiz2017/1
?