下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列:1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, … 给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?多组输入的完整C语言
时间: 2023-09-05 20:08:06 浏览: 64
杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来 在初中,我们就知道,杨辉三角的两个腰边的数都是 1
好的,以下是完整的C语言代码,适用于多组输入:
```c
#include <stdio.h>
int main()
{
int n;
while (scanf("%d", &n) != EOF) {
int row = 1, col = 1, num = 1;
while (1) {
if (num == n) {
printf("%d\n", col);
break;
}
if (col == row) {
row++;
col = 1;
num = 1;
} else {
num = num * (row - col + 1) / col;
col++;
}
}
}
return 0;
}
```
思路如下:
我们可以观察到,杨辉三角形的每一个数,都可以由上一行的两个数相加得到,因此我们可以使用组合数的知识来计算每一个数。具体来说,第n行第k个数的值可以表示为:C(n-1, k-1),其中C(n, k)表示从n个元素中取k个元素的组合数。因此,我们可以通过循环计算每一个数,直到找到第一个值为N的数,输出它所在的列数即可。
阅读全文