挑战
以字符数表示的最短代码,以根据输入输出钻石图案。
输入由3个正数组成,表示钻石的大小和网格的大小。
菱形由ASCII字符/和带有空格的\组成。1码的钻石是:
/\
\/网格的大小由钻石数量的宽度和高度组成。
测试用例
Input:
1 6 2
Output:
/\/\/\/\/\/\
\/\/\/\/\/\/
/\/\/\/\/\/\
\/\/\/\/\/\/Input:
2 2 2
Output:
/\ /\
/ \/ \
\ /\ /
\/ \/
/\ /\
/ \/ \
\ /\ /
\/ \/ Input
4 3 1
Output:
/\ /\ /\
/ \ / \ / \
/ \ / \ / \
/ \/ \/ \
\ /\ /\ /
\ / \ / \ /
\ / \ / \ /
\/ \/ \/
代码计数包括输入/输出(即完整程序)。
发布于 2010-06-06 13:22:11
Golfscript -50个字符
~@:3,[{[.3-~' '*\' '*'/'\.'\\'4$]2$*}%n*.-1%]*n*\;发布于 2010-06-06 06:51:36
Ruby - 115字节
a,b,c=gets.split.map &:to_i;puts (a...a+c*d=a*2).map{|y|(0...b*d).map{|x|x%d==y%d ?'\\':x%d==d-y%d-1?'/':' '}.to_s}发布于 2010-06-06 06:14:20
Python -138个字符
s,r,c=eval("input(),"*3)
x=range(s);o="";l="\/";i=0
for k in x+x[::-1]:y=" "*(s-1-k);o+=(y+l[i<s]+" "*k+l[i>=s]+y)*c+"\n";i+=1
print o*r,作为一种奖励,它也非常容易受到攻击!
https://stackoverflow.com/questions/2983161
复制相似问题