Print the AdamN tile
CJam, 20 bytes
Laq~{'a+_@f*\f+z}/N*
Try it online.
La Push [[]]
q~ Push input n
{ }/ For i in 0..n-1 ...
'a+ Add to char 'a to give current char
_@f* Join each row by char
\f+ Add char to the end of each row as well
z Zip to transpose
N* Join result by newlines
20/21-byte alternatives:
Laaq~{'a+aff+:sz}/N*
Laaq~{'a+\Laf+f*z}/N*
Laq~{'a+f{_@*\+}z}/N*
MATL, 23 bytes
97tiq:+"TFX*tXa~@wZ(!]c
Try it online!
This uses repeated Kronecker tensor product for extending the array, followed by transposition. At each iteration, new columns containing zeros are interleaved with the old; those zeros are then replaced by the appropriate new value (which increases at each iteration); and the matrix is transposed.
(One byte wasted because Octave's Kronecker product doesn't allow char input. This will be fixed for next release).
EXplanation
97 % Push 97 (ASCII for 'a')
t % Duplicate
iq: % Take input n. Range [1 2 ... n-1]
+ % Add. Gives [98 99 ... 97+n-1] (letters to be filled)
" % For each
TFX* % Kronecker product with [1 0]. This interleaves new columns with zeros
tXa~ % Duplicate. Logical index for the new columns
@wZ( % Assign letter to those columns
! % Transpose (zip)
] % End if
c % Convert to chat. Implicitly display
Perl, 110 104 100 99 91 89 87 + 1 (-p
flag) = 88 bytes
#!perl -p
$==$_/2;$_=a.$/;$"=b;s/\w/$&.$"/ge,$"++,s/\n/$&.$"x2**$%.$&/ge,$"++until$=<++$%;$\=$_}{
Using:
> echo 5 | perl -pe '$==$_/2;$_=a.$/;$"=b;s/\w/$&.$"/ge,$"++,s/\n/$&.$"x2**$%.$&/ge,$"++until$=<++$%;$\=$_}{'
Ungolfed:
while (<>) {
# code above added by -p
# $_ has input value
# $/ = "\n" by default
# $% = 0 by default
my $n = $_ / 2; # input
my $s = "a" . $/; # "a\n"
my $c = "b"; # "b"
my $i = $%; # 0
while (++$i <= $n) {
$s =~ s/(\w)/$1 . $c/ge;
$c++;
$s =~ s/(\n)/$1 . ($с x 2**$i) . $1/ge;
$c++;
}
$\ = $s;
} {
# code below added by -p
print; # prints $_ (undef here) and $\
}
Ideone.