编写一个少用循环语句的c++程序来打印杨辉三角
时间: 2024-12-01 11:29:16 浏览: 10
杨辉三角是一个数学术语,表示的是一个数组形式的序列,每一行都是前一行的数字之和,并在两边添加1。我们可以通过递归的方式来编写一个C++程序,避免显式使用循环。下面是一个简单的C++程序,使用了函数模板来生成杨辉三角:
```cpp
#include <iostream>
using namespace std;
template <typename T, int N>
void printPascalTriangle(T (&triangle)[N][N], int i) {
if (i == 0 || i > N - 1)
return;
for (int j = 0; j <= i; ++j)
cout << triangle[i][j] << " ";
cout << endl;
printPascalTriangle(triangle, i + 1);
}
int main() {
const int rows = 5; // 可以调整这个值生成不同大小的杨辉三角
T triangle[rows][rows]; // 初始化二维数组
// 设置第一行和第一列全为1
for (int i = 0; i < rows; ++i) {
triangle[i][0] = triangle[0][i] = 1;
}
// 递归填充其余元素
for (int i = 1; i < rows; ++i) {
for (int j = 1; j < i; ++j)
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
printPascalTriangle(triangle, 0); // 开始打印从第一行开始
return 0;
}
```
在这个程序中,`printPascalTriangle` 函数通过递归的方式生成并打印每一行,而内部的循环用于填充每一行的具体数值。
阅读全文