打印出以下的杨辉三角形(要求打印出10行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 1
…………
要求打印出10行
杨辉三角形:端点数为1,每个数等于它肩上两个数之和。
#include “stdafx.h”
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int array[10][10]; //定义一个10*10的二维数组
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
array[i][j]=0; //赋初值,使数组的每个元素都为0
}
}
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(j==0)
{
array[i][j]=1; //使第一列上每个数都为1
}
}
}
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(j>0&&i>0&&j<=i) //这里j要求小于等于i,这样就可以只在三角形中进行需要的运算
{
array[i][j]=array[i-1][j-1]+array[i-1][j]; //杨辉三角形的特性,一个数等于它肩上两数之和,也就是 array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++) //只输出三角形,而不是整个矩阵
{
cout<<array[i][j]<<” “;
}
cout<<endl; //输出完一行后,就可以换行了。
}
return 0;
}