杨辉三角形算法
最后更新于:2022-04-01 21:39:59
【项目 2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。杨辉三角是一个由数字排列成的三角形数表,一般形式如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
......................................................
杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。 一、使用一维数组:据“F(x)=F(x)+F(x-1)”计算。此算法比较快,但数据受数组大小限制。可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印 7 行杨辉三角形,应该定义等于或大于 7X7 的方形矩阵,只是矩阵的上半部和其余部分并不使用。
### 杨辉三角形具有如下特点:
- 第 0 列和对角线上的元素都为 1。
- 除第 0 列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
### 代码:
~~~
// 杨辉三角形算法.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
using namespace std;
int factorial(int n);
int combine(int a, int b);
void space(int t, int line);
int _tmain(int argc, _TCHAR* argv[])
{
int line;
cout<<"Please Input the line number :";
cin>>line;
while(line!=-1){
for( int i=1;i>line;
}
return 0;
}
int factorial(int n){
int i =1;
int product =1;
while(i<=n){
product =product*i;
i++;
}
return product;
}
int combine(int a, int b){
int result;
if( a==0||b==0)
return 1;
else
result = factorial(b)/(factorial(a)*factorial(b-a));
return result;
}
void space ( int t, int line){
for(int p =1; p<=(line-t);p++)
cout <<" ";
}
~~~
### 输出结果:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/e9fc572b4169ce1fc90a70737d5d2c4b_668x434.png)
**转载请注明出处:http://blog.csdn.net/utimes/article/details/8453961**
';