n是自然数,在你使用最多的语言中,如何用一句代码输出包含n行字符构成的如下形状(可以使用事实上的标准库,例如C++的Bootstrap等;格式化的换行是允许的):
*
***
*****
*******
*********
***********
该语言必定满足:
基本的数据集操作,如range, map
基本的lambda表述
C#:
Console.WriteLine(String.Join("
",
(from i in Enumerable.Range(1, n)
select new String((Enumerable.Repeat(' ', n - i).
Concat(Enumerable.Repeat('*', 2 * i - 1))).ToArray())).ToArray()));
JavaScript(使用underscope):
console.log(_.map(_.range(1, n + 1), function(i) {
return _.map(_.range(0, n - i), function() { return ' '}).join("") +
_.map(_.range(0, 2 * i - 1), function() { return '*'}).join("")
}).join("
"));
Python:
print "
".join(map(lambda i: (' ' * (n - i) + '*' * (2 * i - 1)), range(1, n + 1)))
F#:
printfn "%s" ([1..n]
|> List.map (fun i -> ((String.replicate (n - i) " ") + (String.replicate (2 * i - 1) "*")))
|> List.fold (fun sum x -> sum + x + "
") "")
欢迎补充。还有,忍住不黑Java。