华师一附中OI组
标题:
打印杨辉三角
[打印本页]
作者:
admin
时间:
2018-6-3 11:58
标题:
打印杨辉三角
打印杨辉三角,比如n=9,输出
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
作者:
admin
时间:
2018-6-3 11:58
#include <iostream>
#include <iomanip>
using namespace std;
int n;
void way1()
{
int a[100][100]; //二维数组做法
int i,j;
a[1][1]=1;
for (i=2; i<=n; i++)
{
a[i][1]=a[i][i]=1;
for (j=2; j<=i-1; j++) a[i][j]=a[i-1][j]+a[i-1][j-1];
}
for (i=1; i<=n; i++)
{
for (j=1; j<=n-i; j++) cout<<" ";
for (j=1; j<=i; j++) cout<<setw(4)<<a[i][j];
cout<<endl;
}
}
void way2()
{
int b[2][100];//滚动数组做法
int i,j;
int p;//重要的滚动变量
for (i=0; i<=n; i++)
{
p=i%2; //也可以p=1-p
b[p][1]=b[p][i]=1; //首尾的特殊处理
for (j=2; j<=i-1; j++) b[p][j]=b[1-p][j]+b[1-p][j-1];
for (j=1; j<=n-i; j++) cout<<" ";
for (j=1; j<=i; j++) cout<<setw(4)<<b[p][j];
cout<<endl;
}
}
void way3()
{
int c[100]; //一维数组做法
int i,j;
for (i=0; i<=n; i++)
{
c[0]=c[i]=1;
for (j=i-1;j>=1;j--) c[j]=c[j]+c[j-1]; //回忆背包问题 为什么要从后往前推?
for (j=0; j<=n-i; j++) cout<<" ";
for (j=0; j<=i; j++) cout<<setw(4)<<c[j];
cout<<endl;
}
}
int main()
{
n=9;
way1();cout<<endl;
way2();cout<<endl;
way3();cout<<endl;
return 0;
}
复制代码
作者:
黄煦喆
时间:
2018-7-27 20:43
#include<iostream>
#include<iomanip>
using namespace std;
int a[21],n;
int main()
{
cin>>n;a[1]=1;
for(int i=1;i<=n;i++)
{
for(int j=n-i+1;j>=1;j--)cout<<' ';
for(int j=i;j>=1;j--)a[j]+=a[j-1];
for(int j=1;j<=i;j++)cout<<a[j]<<' ';
cout<<endl;
}
return 0;
}
复制代码
作者:
张笑宇
时间:
2018-7-28 08:46
#include<iostream>
#include<iomanip>
using namespace std;
int n,a[110];
int main()
{
cin>>n;
a[1]=1;
cout<<setw(3)<<a[1]<<endl;
for (int i=2;i<=n;i++)
{
a[i]=1;
for (int j=i-1;j>=1;j--) a[j]=a[j]+a[j-1];
for (int j=1;j<=i;j++) cout<<setw(3)<<a[j];
cout<<endl;
}
return 0;
}
复制代码
作者:
倚窗倾听风吹雨
时间:
2018-7-29 19:34
#include<iostream>
#include<iomanip>
using namespace std;
const int mn=11;
int a[mn][100],aa[2][mn];
int r,c,m,n,p;
int main()
{
cout<<"\n=======way1========\n";
for(r=0;r<=mn-1;r++)
{
a[r][0]=a[r][r]=1;
for(c=1;c<=r;c++)a[r][c]=a[r-1][c-1]+a[r-1][c];
}
for(r=0;r<=mn-1;r++)
{
for(m=1;m<=mn-r;m++)cout<<" ";
for(c=0;c<=r;c++)cout<<setw(4)<<a[r][c];
cout<<endl;
}
}
复制代码
作者:
秀木于林
时间:
2019-10-31 13:36
#include<iostream>
#include<iomanip>
using namespace std;
int a[100]{1,},n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=n-i+1;j>=1;j--) cout<<' ';
for(int j=i;j>=1;j--) a[j]+=a[j-1];
for(int j=1;j<=i;j++) cout<<a[j]<<' ';
cout<<endl;
}
return 0;
}
复制代码
作者:
秀木于林
时间:
2019-10-31 13:45
秀木于林 发表于 2019-10-31 13:36
LJ做法66666666666
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2