n是自然数,在你使用最多的语言中,如何用一句代码输出包含n行字符构成的如下形状(可以使用事实上的标准库,例如C++的Bootstrap等;格式化的换行是允许的):
* *** ***** ******* ********************
该语言必定满足:
基本的数据集操作,如range, map
基本的lambda表述
C#:
Console.WriteLine(String.Join("\n", (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("\n"));
Python:
print "\n".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 + "\n") "")
欢迎补充。还有,忍住不黑Java。