zhengwenwei

n是自然数,在你使用最多的语言中,如何用一句代码输出包含n行字符构成的如下形状(可以使用事实上的标准库,例如C++的Bootstrap等;格式化的换行是允许的):

     *
    ***
   *****
  *******
 *********
***********

该语言必定满足:

  1. 基本的数据集操作,如range, map

  2. 基本的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。

分类:

技术点:

相关文章: