欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

打印杨辉三角

程序员文章站 2022-06-06 22:41:54
...

杨辉三角

1、每行端点与结尾的数为1
2、第n行有n个数
3、每一行的 第n(头尾除外)个数 等于 前一行的第n个数与第n-1个数的和


//错误示范 
#include<iostream>
#include<stdlib.h>
#include<iomanip>
using namespace std;
int main()
{
 int num;
 cout<<"请输入打印到第几行\n"; 
 cin>>num;
 int *a=(int*)malloc(sizeof(int)*num);//设置一个长度为n的整型数组
 for(int j=0; j<num; j++)
 {
  	for(int i=0; i<=j; i++)
  	{  	if (i==j||i==0)
   			a[i]=1;
   		else
   			a[i]=a[i-1]+a[i];   //从前往后遍历
   		cout<<setw(4)<<a[i];//设置位宽为4
 	 }
  cout<<endl;
 }
 return 0;
}

如图,以第4行数据为例,因为从前往后使得a[1]=a[1]+a[0],所以a[1]=2+1=3,于是a[2]=a[2]+a[1],即a[2]=3+1=4打印杨辉三角

//正确示范 
#include<iostream>
#include<stdlib.h>
#include<iomanip>
using namespace std;
int main()
{
 int num;
 cout<<"请输入打印到第几行\n"; 
 cin>>num;
 int *a=(int*)malloc(sizeof(int)*num);//设置一个长度为n的整型数组
 for(int j=0; j<num; j++)
 {
  	for(int i=j; i>=0; i--)
  	{  	if (i==j||i==0)
   			a[i]=1;
   		else
   			a[i]=a[i-1]+a[i];   //从每一行的最后一个数开始往前遍历。
   		cout<<setw(4)<<a[i];//设置位宽为4
 	 }
  cout<<endl;
 }
 return 0;
}

打印杨辉三角
结果正确

相关标签: 杨辉三角