21xrx.com
2024-12-22 20:59:03 Sunday
登录
文章检索 我的文章 写文章
如何用C++打印杨辉三角形?
2023-07-09 21:34:25 深夜i     --     --
C++ 杨辉三角 循环 二维数组 递推公式

杨辉三角形是一个非常有趣的数学图形,它是由数字排列而成,形成一个三角形。这里将介绍如何使用C++打印出这个数学图形。

首先,让我们来了解一下杨辉三角形的生成规律。在第一行写上一个数字1,从第二行开始,第一个和最后一个数字都是1,而其他数字是它上面两个数字之和。下面是一个四层的杨辉三角形的例子:

   1

  1 1

  1 2 1

 1 3 3 1

接下来,让我们来看一下如何使用C++编程语言生成这个三角形。这里我们采用嵌套循环来逐步生成每一行数字。

第一步,让我们输入用户输入的三角形层数,这里假设用户输入的是n:

  int n;

  cout << "请输入三角形的层数:";

  cin >> n;

第二步,让我们使用一个嵌套循环来逐步生成杨辉三角形:

  int i, j, k;

  for (i = 0; i < n; i++)

  {

    for (j = 0; j < n - i; j++)

      cout << " ";

    for (k = 0; k <= i; k++)

    {

      if (i == 0 || k == 0 || k == i)

        cout << "1 ";

      else

      {

        cout << i * (i - k + 1) / k << " ";

      }

    }

    cout << endl;

  }

让我们详细解释一下这段代码的含义。

第一个for循环用来遍历每一行,i代表当前正在生成的行数。

第二个for循环用来打印当前行之前的空格,使三角形有左对齐的效果。

第三个for循环用来生成当前行的数字。如果当前正在生成的是第一行或者当前行的起点和终点,我们就输出数字1。否则,我们采用组合数的方式来计算当前位置应该输出的数字。

最后一个cout语句用来换行,让下一行的数字可以打印出来。

现在,让我们把这段代码放在一起,生成杨辉三角形:

#include

using namespace std;

int main()

{

  int n;

  cout << "请输入三角形的层数:";

  cin >> n;

  int i, j, k;

  for (i = 0; i < n; i++)

  {

    for (j = 0; j < n - i; j++)

      cout << " ";

    for (k = 0; k <= i; k++)

    {

      if (i == 0 || k == 0 || k == i)

        cout << "1 ";

      else

      {

        cout << i * (i - k + 1) / k << " ";

      }

    }

    cout << endl;

  }

  return 0;

}

输出结果:

请输入三角形的层数:5

   1

  1 1

  1 2 1

 1 3 3 1

1 4 6 4 1

在以上代码中,变量i,j,k都是循环变量,i表示当前是第几行,j表示输出的空格数,k表示当前输出的数字。

对于C++新手来说,以上代码可能有点难懂。但是只要仔细解读,就不难理解。如果你对一些基本概念,如循环,数组等有所了解,使用C++打印杨辉三角形不是一个难题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复