C语言打印杨辉三角形右对齐直角
时间: 2024-12-10 16:15:58 浏览: 110
好的,我很乐意为您介绍如何在C语言中打印右对齐的直角杨辉三角形。
杨辉三角形,也称为帕斯卡三角形,是一个由数字组成的三角形数组,其中每个数字是它上方两个数字之和。在C语言中,我们可以通过嵌套循环和组合数公式来实现这个三角形。
以下是实现右对齐直角杨辉三角形的C语言代码:
```c
#include <stdio.h>
int main() {
int rows, i, j, space;
long long number;
printf("请输入杨辉三角的行数: ");
scanf("%d", &rows);
for (i = 0; i < rows; i++) {
// 打印前导空格
for (space = i; space < rows - 1; space++) {
printf(" ");
}
number = 1;
for (j = 0; j <= i; j++) {
printf("%-4lld ", number);
number = number * (i - j) / (j + 1);
}
printf("\n");
}
return 0;
}
```
这段代码的主要特点如下:
1. 使用嵌套循环来生成三角形。外层循环控制行数,内层循环生成每行的数字。
2. 使用组合数公式 `C(n,k) = C(n,k-1) * (n-k+1) / k` 来计算每个数字,避免了重复计算阶乘。
3. 通过打印前导空格来实现右对齐直角的效果。
4. 使用 `%4lld` 格式说明符来确保数字之间有适当的间距。
5. 数字按列对齐,形成一个右对齐的直角三角形。
这个程序会根据用户输入的行数打印出相应的右对齐直角杨辉三角形。例如,输入5,输出如下:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
```
阅读全文
相关推荐












