解题思路:

1、每个数等于它上方两数之和。

2、每行数字左右对称,由1开始逐渐变大。

3、第n行的数字有n项。

4、第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。

5、第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一。

6、每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。

7、(a+b)n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。

8、将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第4n+1个斐波那契数;将第2n行第2个数(n>1),跟第2n-1行第4个数、第2n-2行第6个数……这些数之和是第4n-2个斐波那契数。

9、将第n行的各数值,分别乘以10的列数m-1次方,然后把这些数值相加的和等于11的n-1次方。

图片1.png


 注意事项:


参考代码:

#include<stdio.h>
int c(int x, int y) { 
	int z;
	if (y == 1 || y == x)return 1;
	z = c(x - 1, y - 1) + c(x - 1, y);          //C(n+1,i)=C(n,i)+C(n,i-1)       
	return z;
}
int main() {
	int n;
	scanf("%d", &n);//输入行数
	n += 1;
	for (int i = 1; i <=n; i++) {
		for (int i1 = i; i1 < n; i1++)    //数字前面的空格,倒三角
			printf("   ");
		for (int j = 1; j <= i; j++)
			printf("%3d   ", c(i, j)); //输出数字时保留间隙
		printf("\n");
	}
	return 0;
}


点赞(0)
 

0.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论