猿问

如何使用 LINQ / Divide and Conquer 方法以优雅的方式迭代一个循环或无循环

1

12

123

1234

12345

我曾尝试使用 2 个 FOR 循环来实现这一目标,并尝试使用一个循环进行递归。


public static void Main(string[] args) 

    DisplayNumberPyramid(1); 


public static void DisplayNumberPyramid(int i)

{

    if(i<=5)

    {

        for(int j=1;j<=i;j++)

        {

            Console.Write(j);

        }

        Console.Write("\n");

        DisplayNumberPyramid(i+1);

    }

    Console.ReadLine();

}

使用具有一个循环和不具有循环的 LINQ/DnC 方法,期望获得相同的输出。


慕工程0101907
浏览 113回答 2
2回答

青春有我

解决方案var results = Enumerable.Range(1, 5)                        .Select(x => string.Concat(Enumerable.Range(1, x)));foreach(var result in results)   Console.WriteLine(result);如果你真的不想要foreachConsole.WriteLine(string.Join("\r\n",results));或者for 循环for (var i = 1; i <= 5; i++){   for (var j = 1; j <= i; j++)      Console.Write(j);   Console.WriteLine();}输出112123123412345

慕侠2389804

使用c#8 的新范围类型功能的另一种解决方案output = "12345";for(var i = 1; i <= 5; i++)  Console.WriteLine(output[0..i]);或使用子字符串方法output = "12345";for(var i = 1; i <= 5; i++)  Console.WriteLine(output.Substring(0, i));
随时随地看视频慕课网APP
我要回答