112123123412345我曾尝试使用 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 方法,期望获得相同的输出。
2 回答
青春有我
TA贡献1784条经验 获得超8个赞
解决方案
var results = Enumerable.Range(1, 5)
.Select(x => string.Concat(Enumerable.Range(1, x)));
foreach(var result in results)
Console.WriteLine(result);
如果你真的不想要foreach
Console.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();
}
输出
1
12
123
1234
12345
慕侠2389804
TA贡献1719条经验 获得超6个赞
使用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));
- 2 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消