' '' '' ' ' '''' '' '' ' ' '' ' ' '' '' '''' ' ' '''' '''' '' '' '' '' "'" "" "" "" "" ' '' '' '' '' ' ' '' '' '''' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' ''""" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '' ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' ''""" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' ''"" ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '' ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' '''"" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' ''" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" ' '' "' '' '' ''" "" ' '' '' ''' "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" """" "' '' '' ''" ' '' ' ' '' '' '' '' ' ' '' '' '''' '''' '' '' '' "' '' '' "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' "' '' "' '' '' '' ''"' '' ''" "' '' ' ' '' '' '' '''' '' '' '' ' ' '' '' '' '''' '' '' ''"' '' ''"" "" ' '' '' '' ''' "" "" "" " ' '' ' ' '' '' '' '' ' ' '' '' '''' '''' '' "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '' ' '' '' '' "' '' ' ' '' '' '' '' ' ' '' '' '''' '''' '' '' '' "' ''""" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" " ' '' '' '' '' ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "' '' ' ' '' '' '' '' ' ' '' '' '''' '''' '' '' ''"' '' '' '' ''' '' '' '' ''' "" "" "" "" ' '' '' '' "' '' "' '' '' '' '' ' ' '' '' ''''" " ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" "' '' '' ''" ' '' "' "" "" "" "" " ' '' '' '''" "" ' '' '' '' ''' "" "" "" "" ' '' '' ''"" ' '' '' '' '''" "" "" "" " ' '' '' '' '''" "" "" "" ' '' "' '' '' '' ''" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ''' "" "" "" "" ' '' '' '' ' ' '' ' ' '' '' '' '''' '''' ''' "" "' ''" ' '' "'"" "' ''" ' '' "' '' "' ''" ' ''"' '' '' '' '' ' ' '''' ' ' '''' " ' '' '' "" ' ''' "" " ' '' '' '' '''" "" "" "" ' ''' "" "'" ' '' '' '' ' ' '''' "' "" " ' '' '' '''" " ' '' ' ' '''' '' '' '''" " ' '' ' ' '' '''''" "" """" ' ''' "" ' '' ' ' '' '' '''' "' '' ' ' '' '' '' '''' ''
açıklama
Bu program şu şekilde sözde koduna eşdeğerdir:
while (cp = (ch = read)) + 1 {
(
(cp -= 65) ? // A
(cp -= 4) ? // E
(cp -= 4) ? // I
(cp -= 6) ? // O
(cp -= 6) ? // U
(cp -= 12) ? // a
(cp -= 4) ? // e
(cp -= 4) ? // i
(cp -= 6) ? // o
(cp - 6) ? // u
0
: 1
: 1
: 1
: 1
: 1
: 1
: 1
: 1
: 1
: 1
) ? ((--vs)+4) ? print(ch) : (++vs) : {
print(ch)
vs = 0
}
}
aşağıdaki değişken atamalarıyla:
0 (unused) (13 bytes)
1 cp ( 4 bytes; occurs 20× in the code)
2 vs ( 7 bytes; occurs 5× in the code)
3 ch (10 bytes; occurs 3× in the code)
Gördüğünüz gibi, değişken slot 0'dan kaçındım çünkü 0yazmak için çok uzun bir sabit.
Her karakteri okuyup hem de değerini depolamak Yani cpve ch. Gerekirse yazdırabilmemiz için değiştireceğiz, cpancak saklayacağız ch. cpASCII'deki 10 olası sesli harf karakterinden her birinin olup olmadığını kontrol etmek için 65, 4, 4, 6 vb .
vsher zaman yazdırılmasına izin verilen ünlü sayısından 3 daha az içerir. Başlangıçta başlar 0, böylece 3 sesli harf yazdırılabilir. O ulaştığında -3, biz sesli harfleri yazdırırken durdurun.
Biz karşılaşırsanız olmayan sesli harf (boşluk dahil), biz yürütmek print(ch)ardındanvs = 0 . Muhtemelen tahmin ettiğiniz gibi, sesli harfler sayacını sıfırlar.
Bir sesli harfle karşılaşırsak , idam ederiz ((--vs)+4) ? print(ch) : (++vs). Bunu parçalayalım:
- azalma
vs ;
- değer şimdi ise
-4, çok ileri gittik, bu yüzden hiçbir şey yazdırmayın, ancak vstekrar artırın , -3böylece devam edeceğiz sesli harfleri yazdırmak için reddetme;
- aksi takdirde karakteri yazdırın.
aaYYAAaaaAERGH.