C语言实现杨辉三角函数
时间: 2024-05-07 11:21:25 浏览: 88
以下是C语言实现杨辉三角函数的代码:
```c
#include <stdio.h>
int main()
{
int rows, coef = 1, space, i, j;
printf("请输入行数: ");
scanf("%d", &rows);
for(i=0; i<rows; i++)
{
for(space=1; space <= rows-i; space++)
printf(" ");
for(j=0; j <= i; j++)
{
if (j==0 || i==0)
coef = 1;
else
coef = coef*(i-j+1)/j;
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
```
运行程序后,输入杨辉三角的行数,即可输出杨辉三角的各行。
相关问题
数据结构c语言实现杨辉三角
杨辉三角,也称为帕斯卡三角,是一个非常著名的数列图形,其中每个数字都是它上方两个数字之和。在C语言中,我们可以使用二维数组来存储并打印这个三角形。以下是一个简单的C语言程序,用于创建和显示杨辉三角:
```c
#include <stdio.h>
#define ROWS 10 // 可视化三角形的最大行数
// 创建二维数组存储杨辉三角的值
int pascal_triangle[ROWS][ROWS];
void print_pascal_triangle() {
for (int i = 0; i <= ROWS - 1; ++i) { // 遍历每一行
for (int j = 0; j <= i; ++j) { // 输出当前行的元素
printf("%d ", pascal_triangle[i][j]); // 显示数值
}
printf("\n"); // 换行
}
}
int binomial_coefficient(int n, int k) {
if (k > n || k < 0) return 0;
int result = 1;
if (k == 0 || k == n) result = 1;
else {
for (int i = 1; i <= k; ++i) {
result *= (n - i + 1);
result /= i;
}
}
return result;
}
int main() {
// 初始化杨辉三角
for (int i = 0; i <= ROWS - 1; ++i) {
for (int j = 0; j <= i; ++j) {
pascal_triangle[i][j] = binomial_coefficient(i, j);
}
}
print_pascal_triangle();
return 0;
}
```
在这个程序中,我们首先定义了一个二维数组`pascal_triangle`,然后在`binomial_coefficient`函数中计算每个位置的组合值,最后使用嵌套循环填充三角形,并在`print_pascal_triangle`中打印出来。
用递归思想和C语言实现杨辉三角
在C语言中,杨辉三角是一种经典的动态规划和递归问题。它是一个数阵,每个数字都是前两个数字之和。下面是使用递归思想和C语言实现的一个简单示例:
```c
#include <stdio.h>
// 用于打印杨辉三角的函数
void printPascal(int row) {
int triangle[row][row];
// 初始化第一行和第一列
for (int i = 0; i <= row; i++) {
triangle[0][i] = 1;
if (i > 0)
printf("%d ", triangle[0][i]);
else
printf("%d", triangle[0][i]); // 第一行只有一个元素,不需要空格
}
printf("\n");
// 递归计算并打印每一行
for (int i = 1; i < row; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i)
triangle[i][j] = 1; // 底部和顶部的单元格直接赋值为1
else
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]; // 计算当前元素的值
printf("%d ", triangle[i][j]);
}
printf("\n");
}
}
int main() {
int rows = 5; // 指定要生成的杨辉三角的行数
printPascal(rows);
return 0;
}
```
这个程序首先初始化第一行和第一列,然后通过两层循环递归计算并打印每一行的数字。当递归到最后一行时,由于杨辉三角的特性,所有内部元素都会自动为1。
阅读全文