Adam7 은 PNG와 같은 래스터 이미지에 대한 인터레이스 알고리즘입니다. Adam M. Costello가 발명했기 때문에 "Adam7"알고리즘이라고하며 특정 패턴을 7 번 수행하여 생성됩니다. 코드 골프에 정말 재미있는 Adam7 알고리즘의 멋진 점 중 하나는 패턴이 홀수 인 한 임의의 횟수만큼 반복 될 수 있다는 것입니다. 1996 년 PNG표준이 개발 되었을 때, 9 번의 반복이 너무 복잡하고 5 번의 반복이 효율적이지 않기 때문에 7 번의 반복 만 사용하는 것으로 충분했습니다.
다음은 타일의 첫 번째 반복입니다.
a
꽤 간단합니다. 이것은 "Adam1"타일입니다. 다음 반복 인 "Adam3"타일을 얻는 방법은 다음과 같습니다.
마지막 타일은이므로 1x1높이와 너비를 두 배로 늘리고 다음 타일은 2x2입니다. 먼저 왼쪽 상단에서 'a'로 시작합니다.
a-
--
2 단계,이 패턴을 오른쪽으로 복사하고 글자를 1 씩 늘립니다.
ab
--
3 단계, 2 단계와 동일하지만 오른쪽 대신 복사하십시오.
ab
cc
팔. "Adam3"타일. "Adam5"도 해봅시다. 실제로 알고리즘이 어떻게 작동하는지 볼 수 있습니다. 이 타일은 다시 두 배로 커 4x4집니다. 다시 a왼쪽 상단에서 a 로 시작합니다 .
a---
----
----
----
이 패턴을 두 배로 늘리고 글자를 늘리고 오른쪽으로 이동하십시오.
a-b-
----
----
----
다시, 이번에는 다운되었습니다.
a-b-
----
c-c-
----
이번에도 오른쪽으로.
adbd
----
cdcd
----
다시, 이번에는 다운되었습니다.
adbd
eeee
cdcd
eeee
이것은 "Adam5"타일입니다. 다음은 Adam7 타일의 ASCII 표현입니다.
afdfbfdf
gggggggg
efefefef
gggggggg
cfdfcfdf
gggggggg
efefefef
gggggggg
그리고 우리가 그 동안 Adam7 타일의 각 단계에 대한 재미있는 애니메이션이 있습니다 (여러 타일이 나란히 있지만).
도전
양의 홀수 N이 주어지면 "Adam N "타일을 출력하십시오 . 기본 방법으로 IO를 사용할 수 있습니다 . 숫자 대신 알파벳을 사용하기 때문에 최대 25 개의 입력 만 처리하면됩니다. 지정한대로 일관된 한 소문자 또는 대문자를 출력하도록 선택할 수 있습니다.
샘플 IO
1:
a
삼:
ab
cc
5 :
adbd
eeee
cdcd
eeee
7 :
afdfbfdf
gggggggg
efefefef
gggggggg
cfdfcfdf
gggggggg
efefefef
gggggggg
9 :
ahfhdhfhbhfhdhfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
ehfhehfhehfhehfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
chfhdhfhchfhdhfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
ehfhehfhehfhehfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
평소와 같이, 이것은 코드 골프이므로 표준 허점이 적용되고 바이트 단위의 최단 답변이 승리합니다!

c테스트 케이스는 어디에 있습니까9?