' "" "" "" ""' "" "" "" ' "" "" "" "" "" "" "" "" "'" "" "" "" "" "" "" "" "" " "" "" "" "" ' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" ""' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """ "" "" "" "" "" ' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """ '" "" "" "" "'" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" ""' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " '"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " "" ' "" "" ""' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """ "" "" "" "" " '" ""' "" "" "" "" " '" "" "" "" "" "" "" "" "" "" "" "" "" " "" "" "" "" "" "" " '" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " " '" "" "" "" "" "" "" "" "" "" ""' "" "" "" "" "" "" "" "" "" "" "" """ "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" "'" "" ' "" "" "" "" "'" "" "" "" "" "" ' "" "" "" ""' "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" ""' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "' "" "" "" ""' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " " '" "" "" "" "'" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " ' "" "" "" "" " '" "" "" "'" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" '" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " ' "" "" "" ""' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ' "" "'" "" "" "" "" "" "" "" "" "" "" "" "" "" "" '"" "" "" "" "" "" "" " '" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " "" ' "" "" ""' "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" '' "" "" "" "" "" ' ""' "" " '" "" "" "" "" "'" " '" "" "" "" "" "" "" "" """" ' "" "" "'" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "
설명
이 프로그램은 다음과 같은 의사 코드와 동일합니다.
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
}
}
다음과 같은 변수 할당으로 :
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)
보시다시피 가변 슬롯 0 0
은 피하는 것이 너무 길기 때문에 피했습니다 .
우리는 각 문자를 읽고 모두의 값을 저장 그래서 cp
및 ch
. 필요한 경우 인쇄 할 수 있도록 수정 cp
하고 보관 ch
합니다. cp
ASCII에서 가능한 10 개의 모음 문자 각각인지 확인하기 위해 숫자 65, 4, 4, 6 등을 연속적으로 뺍니다 (마지막 문자는 할당 할 필요가 없습니다).
vs
항상 인쇄 할 수있는 모음 수보다 3이 적습니다. 에서 시작하여 0
3 개의 모음을 인쇄 할 수 있습니다. 에 도달하면 -3
모음 인쇄가 중지됩니다.
모음 이 아닌 공간 (공백 포함)이 발생하면 print(ch)
다음에 실행 됩니다 vs = 0
. 당신이 아마 짐작했듯이, 이것은 모음 카운터를 재설정합니다.
모음 을 만나면 실행 ((--vs)+4) ? print(ch) : (++vs)
합니다. 이것을 분해하자 :
- 감소
vs
;
- 값이 now
-4
인 경우 너무 멀리 갔으므로 아무 것도 인쇄하지 말고 vs
다시 증가 -3
시켜 모음 인쇄를 계속 거부합니다.
- 그렇지 않으면 문자를 인쇄하십시오.
aaYYAAaaaAERGH
.