Retina , 27 20 bayt
^
$_$*: $_
:
$_$*:
:
Büyük girdiler için biraz yavaş olur çünkü son aşamadan önce sonuç tekdüze olarak gösterilir.
Çevrimiçi deneyin! (İlk satır satır besleme ile ayrılmış bir test takımı sağlar.)
açıklama
2
Örnek bir girdi olarak kullanacağım (çünkü tek biçimli gösterimler daha büyük girdiler için biraz hantallaşıyor).
Aşama 1: Değiştirme
^
$_$*: $_
Dizenin başlangıcını eşleştirerek ^
bazı şeyleri hazırlarız. $_
giriş dizgisinin kendisine atıfta bulunur ve $*:
bu kadar fazla virgül ekleriz. Yani biz alırız:
:: 22
Aşama 2: Değiştirme
:
$_$*:
Şimdi her birini eşleştiriyoruz :
ve onunla değiştiriyoruz $_$*:
. Elbette, bu süre $_
bir tamsayı olarak değerlendirilmez (ancak :: 22
örneğimize göre), ancak $*
yalnızca dizedeki ilk ondalık basamağı arar, bu nedenle bu kendi kendine birleştirilmiş girdiyi değerlendirir ( O
zorluk şartnamesinde). Sonunda N*O
iki nokta üst üste konacağız, ardından O
:
:::::::::::::::::::::::::::::::::::::::::::: 22
Aşama 3: Eşleşme
:
Geriye kalan tek şey :
, saryerden ondalık basamağa dönüştürmek için s saymaktır , bu tam da bu aşamada yapılan şeydir.