n行杨辉三角c语言程序
时间: 2023-11-16 08:01:51 浏览: 96
杨辉三角是一个数学上的概念,它是一个三角形,其中第一行只有一个数1,接下来的每一行的每个数都是它左上方和右上方的两个数之和。以下是一个输出n行杨辉三角的C语言程序:
```c
#include <stdio.h>
long yanghui(int row, int column); //声明函数
int main() {
int n;
scanf("%d", &n); //输入要输出的行数
int i, j;
for (i = 1; i <= n; i++) {
for (j = 1; j <= i; j++) {
printf("%5d", yanghui(i, j)); //调用我们定义的函数
}
printf("\n");
}
return 0;
}
//定义函数,row 与 column 代表的行 与 列。
long yanghui(int row, int column) {
// 文中两个要素就在这句话体现了。
return (column == 1 || column == row) ? 1 : yanghui(row - 1, column) + yanghui(row - 1, column - 1);
}
```
相关问题
n阶杨辉三角c语言程序
n阶杨辉三角是一个经典的数学问题,它通常通过递归或动态规划的方式来实现。在C语言中编写这个程序,你可以考虑创建一个二维数组来存储每一行的数据,然后根据杨辉三角的规则填充数组。下面是一个简单的C语言程序示例:
```c
#include <stdio.h>
// 定义一个大小为n*n的二维数组
int binomial[n][n];
// 杨辉三角的初始化函数
void init(int n) {
for (int i = 0; i <= n; i++) {
binomial[i][0] = binomial[i][i] = 1;
if (i > 1) {
binomial[i][1] = binomial[i - 1][i - 1];
}
}
}
// 输出n阶杨辉三角
void print_triangle(int n) {
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= i; j++) {
printf("%4d", binomial[i][j]);
}
printf("\n");
}
}
int main() {
int n;
printf("请输入杨辉三角的阶数n: ");
scanf("%d", &n);
init(n); // 初始化杨辉三角
print_triangle(n); // 输出结果
return 0;
}
```
在这个程序里,`init`函数用于构建并初始化杨辉三角,而`print_triangle`函数负责打印出整个三角形。用户可以输入想要计算的阶数。
n行一半杨辉三角c语言程序
以下是n行一半杨辉三角的C语言程序:
```c
#include <stdio.h>
#define N 7
int main() {
int i,j;
int a[N][N];
for(i = 0; i < N; i++) //杨辉三角形的每一行的首位都是1
{
a[i][i] = 1;
a[i][0] = 1;
}
for(i = 2; i < N; i++) {
for(j = 1; j <= i - 1; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for(i = 0; i < N; i++) {
for(j = 0; j <= i/2; j++) { //只输出一半的杨辉三角形
printf("%6d", a[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
```
阅读全文