杨辉三角形如图
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
我们假定用一个二维数组num存储 我们可以发现每一行的首尾都是1. 从第三行非1的数是由它上一行的对应位置的数加上左前位置的数所得的。 即,num[i][j] = num[i-1][j]+num[i-1][j-1]
我们现在举例说明: 我们假设要求出杨辉三角形前10行数据
源代码:
#include<iostream> #include<cstdio> #include<iomanip> #include<cstring> using namespace std; int num[101][101]; int main() { memset(num,0,sizeof(num)); num[1][1] = 1; //初始化第一行的数 for(int i = 2;i<=10;i++) { num[i][1] = 1; num[i][i] = 1; for(int j = 2;j<=i;j++) { num[i][j] = num[i-1][j]+num[i-1][j-1]; } } for(int i = 1;i<=10;i++) { for(int j = 1;j<=i;j++) { cout<<setw(5)<<num[i][j]; } cout<<endl; } return 0; }个人搭建博客链接:
http://47.107.118.184