HDU-#2032 杨辉三角(递推 & 二项式定理)
来源:互联网 发布:淘宝卖家低价风险交易 编辑:程序博客网 时间:2024/05/12 20:37
题目大意:输出给定层数的杨辉三角,这个就不需要具体描述了,大家懂的。
解题思路:杨辉三角大家都非常熟悉了,其最熟悉的还有其递推公式,即:c[i][j]=c[i-1][j]+c[i-1][j-1]。因此一种方法可以直接根据这个进行存储数据然后输出。但是其复杂度为O(n^2),进一步分析可以知道它跟二项式定理的展开系数一直,因此我们可以根据二项式定理推导出:c[i]=c[i-1]*(n-i+1)/i,但是中间有乘除要防止溢出问题。这两种解法详见code。
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2032
递推 code:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAXN = 30+10;int n;int c[MAXN][MAXN];int main(){ while(scanf("%d",&n)!=EOF){ for(int i=1;i<=n;i++) //规律递推 for(int j=1;j<=i;j++){ if(j==1 || j==i) c[i][j]=1; else c[i][j]=c[i-1][j]+c[i-1][j-1]; } for(int i=1;i<=n;i++){ //输出 for(int j=1;j<=i;j++){ if(j==1) printf("%d",c[i][j]); else printf(" %d",c[i][j]); } printf("\n"); } printf("\n"); } return 0;}
二项式 code:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAXN = 1000;int n;int c[MAXN];int main(){ while(scanf("%d",&n)!=EOF){ memset(c,0,sizeof(c)); c[0]=1;n-=1; printf("1\n"); //第一行第一个数 for(int i=1;i<=n;i++){ printf("%d",c[0]); //每行的第一个数 for(int j=1;j<=i-1;j++){ c[j]=c[j-1]*(i-j+1)/j; //二项式定理推导 printf(" %d",c[j]); } printf(" 1\n"); //每行最后一个数 } printf("\n"); } return 0;}
0 0
- HDU-#2032 杨辉三角(递推 & 二项式定理)
- 杨辉三角&二项式定理
- 杨辉三角/二项式定理
- 二项式定理 & 杨辉三角
- uva1635(唯一分解定理,杨辉三角二项式递推公式)
- 杨辉三角和二项式定理
- 杨辉三角与二项式定理
- 杨辉三角与二项式定理
- Binomial Theorm 牛顿二项式定理(杨辉三角)
- UVA - 10105 Polynomial Coefficients 二项式定理和杨辉三角
- ACMjava杨辉三角形与二项式定理递推实现与组合实现
- 杨辉三角与二项式定理(排列与组合) By ACReaper
- hdu 1098-二项式定理
- 杨辉三角求二项式分布
- 关于杨辉三角与二项式系数
- 杨辉三角形与二项式定理
- xiaoxin juju needs help hdu(5651)杨辉三角与二项式
- 递推之杨辉三角
- android 传感器使用与开发----加速度传感器
- 《江城子·密州出猎》 苏轼
- OpenCv2.4.4实现反转(reverse)图像
- Tomcat Server处理一个http请求的过程
- Eclipse快捷键 10个最有用的快捷键
- HDU-#2032 杨辉三角(递推 & 二项式定理)
- TCP快速重传与快速恢复原理分析
- 《相见欢·无言独上西楼》 李煜
- Employee level and performance review in Microsoft
- listview getChiildAt结果为空
- 排序算法总结之排序概述
- util
- tomcat server.xml 中host配置
- 浅析宝宝出现过敏的根本问题是什么