C++杨辉三角问题案例

题目描述

杨辉三角是一种经典的数学图形,它由一组数字构成,其中每个数字是上方两个数字的和。编写一个简单的C++程序,用于生成并输出指定行数的杨辉三角。

案例代码

#include <iostream>
using namespace std;

int main() {
    int rows, coef = 1;
    cout << "请输入要生成的行数:";
    cin >> rows;
    
    for(int i = 0; i < rows; i++) {
        for(int j = 1; j <= rows - i; j++) {
            cout << " ";
        }
        for(int k = 0; k <= i; k++) {
            if (k == 0 || i == 0) {
                coef = 1;
            } else {
                coef = coef * (i - k + 1) / k;
            }
            cout << coef << " ";
        }
        cout << endl;
    }
    
    return 0;
}

在这个程序中,使用了三个嵌套的循环来生成杨辉三角。外层循环 for(int i = 0; i < rows; i++) 控制生成的行数,中间的循环 for(int j = 1; j <= rows - i; j++) 控制输出空格,内层循环 for(int k = 0; k <= i; k++) 控制输出数字。

在内层循环中,使用了一个变量 coef 来存储当前位置的数字值。根据杨辉三角的性质,每个数字都是上方两个数字的和,因此可以使用组合数的公式来计算当前位置的值。如果当前位置为第一列或第一行,则该位置的值为1,否则通过 coef = coef * (i - k + 1) / k 来计算。

在程序的开头,使用 cin 输入要生成的行数,并通过 cout 输出每一行的数字。最后,使用 return 0 来结束程序的执行。

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享