c语言用杨辉三角求cnk的代码
时间: 2024-06-12 15:11:17 浏览: 23
以下是使用杨辉三角求 Cnk 的 C 语言代码:
```
int Cnk(int n, int k) {
int** triangle = (int**)malloc(sizeof(int*) * (n + 1));
for (int i = 0; i <= n; i++) {
triangle[i] = (int*)malloc(sizeof(int) * (i + 1));
triangle[i][0] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
triangle[i][i] = 1;
}
int ans = triangle[n][k];
for (int i = 0; i <= n; i++) {
free(triangle[i]);
}
free(triangle);
return ans;
}
```
其中,triangle 数组存储了杨辉三角的所有数值,最后返回 triangle[n][k] 即可得到 Cnk 的值。
相关问题
C语言中杨辉三角的程序代码
以下是C语言中打印杨辉三角的程序代码:
```c
#include <stdio.h>
int main() {
int line;
printf("输入要查看杨辉三角的行数(大于2):");
scanf("%d", &line);
if (line < 2) {
printf("行数小于2,Goodbye!\n");
exit(1);
}
int arr[line][line];
for (int i = 0; i < line; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
arr[i][j] = 1;
printf("%d ", arr[i][j]);
} else {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
printf("%d ", arr[i][j]);
}
}
printf("\n");
}
return 0;
}
```
写一份用c语言求杨辉三角的代码
好的,以下是用 C 语言编写的求解杨辉三角的代码:
```
#include <stdio.h>
int main() {
int n, i, j, c;
printf("请输入要打印的行数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
c = 1;
for (j = 0; j <= i; j++) {
printf("%d ", c);
c = c * (i - j) / (j + 1);
}
printf("\n");
}
return 0;
}
```
以上代码可以根据输入的行数打印出杨辉三角。希望对你有所帮助!