我如何在 C# 中修改这个嵌套的 for 循环?
How can i modify this nested for loop in C#?
我正在尝试打印出一个 pyramid/Pascal 三角形,它将以 3 个为一组输出。您可以在下面的示例中看到它。
1
1 3 1
1 3 9 3 1
1 3 9 27 9 3 1
1 3 9 27 81 27 9 3 1
1 3 9 27 81 243 81 27 9 3 1
1 3 9 27 81 243 729 243 81 27 9 3 1
1 3 9 27 81 243 729 2187 729 243 81 27 9 3 1
我得到的不是上面的输出,而是这个:
这是我的代码:
using System;
namespace ConsoleApp
{
class PiscalTriangle
{
static void Main(string[] args)
{
Console.WriteLine("Enter length : ");
int num = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < num; i++)
{
for (int j = num; j > i; j--)
{
Console.Write(" ");
}
int val = 1;
for (int j = 0; j <= i; j++)
{
Console.Write(val + " ");
val = val * (i - j) / (j + 1);
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
要生成所需的输出,需要考虑三个主要方面:
- 在
num
变量和迭代器 i
的帮助下定义的 pascal 树的深度,范围从 1 to num
- pascal 树的每一行中的元素都在序列 1,3,5,7.. 中,当与树的深度相关时,相当于
2i-1
。因此,行值迭代器 j
的范围从 1 to 2i-1
- 最后的值
(For example 3rd row, 1 3 9 3 1)
可以写成x的3次方的形式,其中x从0
增加到i
然后减少到0
通过总结这3个条件,我们可以得到我们想要的输出。
using System;
namespace ConsoleApp
{
class PiscalTriangle
{
static void Main(string[] args)
{
Console.WriteLine("Enter length : ");
int num = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= num; i++)
{
for (int j = num; j > i; j--)
{
Console.Write(" ");
}
var x = 0;
for (double j = 1; j <= 2*i-1; j++)
{
double val = Math.Pow(3, x);
Console.Write(val + " ");
if(j < i)
{
x++;
}
else
{
x--;
}
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
我正在尝试打印出一个 pyramid/Pascal 三角形,它将以 3 个为一组输出。您可以在下面的示例中看到它。
1
1 3 1
1 3 9 3 1
1 3 9 27 9 3 1
1 3 9 27 81 27 9 3 1
1 3 9 27 81 243 81 27 9 3 1
1 3 9 27 81 243 729 243 81 27 9 3 1
1 3 9 27 81 243 729 2187 729 243 81 27 9 3 1
我得到的不是上面的输出,而是这个:
这是我的代码:
using System;
namespace ConsoleApp
{
class PiscalTriangle
{
static void Main(string[] args)
{
Console.WriteLine("Enter length : ");
int num = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < num; i++)
{
for (int j = num; j > i; j--)
{
Console.Write(" ");
}
int val = 1;
for (int j = 0; j <= i; j++)
{
Console.Write(val + " ");
val = val * (i - j) / (j + 1);
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
要生成所需的输出,需要考虑三个主要方面:
- 在
num
变量和迭代器i
的帮助下定义的 pascal 树的深度,范围从1 to num
- pascal 树的每一行中的元素都在序列 1,3,5,7.. 中,当与树的深度相关时,相当于
2i-1
。因此,行值迭代器j
的范围从1 to 2i-1
- 最后的值
(For example 3rd row, 1 3 9 3 1)
可以写成x的3次方的形式,其中x从0
增加到i
然后减少到0
通过总结这3个条件,我们可以得到我们想要的输出。
using System;
namespace ConsoleApp
{
class PiscalTriangle
{
static void Main(string[] args)
{
Console.WriteLine("Enter length : ");
int num = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= num; i++)
{
for (int j = num; j > i; j--)
{
Console.Write(" ");
}
var x = 0;
for (double j = 1; j <= 2*i-1; j++)
{
double val = Math.Pow(3, x);
Console.Write(val + " ");
if(j < i)
{
x++;
}
else
{
x--;
}
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}