用C++编写等腰杨辉三角
#include<iostream>
#include<iomanip>
#define N 100
using namespace std;
int main()
{
int a[N][N],n,i,j;
cin>>n; //输入一个小于N的数
for (i=0;i<n;i++)
for (j=0;j<=i;j++)
if (j==0||i==j)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
for (i=0;i<n;i++) //输出金字塔杨辉三角形
{
cout<<setw(3*(n-i))<<" "; //setw()函数用来设置输出字符位宽
for (j=0;j<=i;j++)
cout<<setw(6)<<a[i][j];
cout<<endl;
}
return 0;
}
用C语言编写等腰杨辉三角
#include<stdio.h>
#define N 100
int main()
{
int i,j,k,n=0,a[N][N];
while (n<=0||n>=100) /*控制打印的行数不要太大,过大会造成显示不规范*/
{
printf("请输入要打印的行数(小于)=");
scanf("%d",&n);
}
printf(" %d行杨辉三角如下:\n\n\n",n);
for (i=1;i<=n;i++)
a[i][1]=a[i][i]=1;/*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/
for (i=3;i<=n;i++)
for (j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];/*除两边的数外都等于上两顶数之和*/
for (i=1;i<=n;i++)
{
for (k=1;k<=n-i;k++) printf(" "); /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/
for (j=1;j<=i;j++) /*j<=i的原因是不输出其它的数,只输出我们想要的数*/
printf("%6d",a[i][j]);
printf("\n"); /*当一行输出完以后换行继续下一行的输出*/
}
}