我们可以先在草稿纸上写出杨辉三角形。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
............................
这样的形状我们可以看成这几点要素。
- 每一行的开头和结尾都是 1。
- 每一行从第二个数开始都是上一行的前一个数加上同列的一个数。
- 总结上面两个要素,就是要在每一行的第一个数和最后一个数输出为 1。
- 还有就是每行第二个数就是等于正上方的数 加上 左上方的数(就是上一行的同一列的数加上前一列的数)。
-
这里我用了递归的方法。#include<stdio.h> int main() { long yanghui(int row,int column);//声明函数 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); }