c++ 打印杨辉三角

描述

杨辉三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
(略)
输出n行杨辉三角,每个数占4个位置,左对齐。

输入

n

输出

n行杨辉三角

示例输入

3

示例输出

1
1 1
1 2 1

提示

每个数占4个位置,左对齐

#include <stdio.h>//杨辉三角
#define N 40
void main()
{

int a[N][N]={0},M;
int i,j;
for(i=0;i<N;i++)
a[i][0]=a[i][i]=1;
for(i=2;i<N;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

scanf("%d",&M);
for(i=0;i<M;i++)
{
for(j=0;j<=i;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
}
把N值修改到很大,只要输入的n比N小,即可得到结果。

参考资料:我写的

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-23
我的更简单

#include <stdio.h>
#include <iostream.h>

int main(void)
{
int i, j , a[100][100], N;
cout << "要输出杨辉三角的行数:";
cin >> N;
N++;
for (i = 1; i < N; i++)
{
a[i][i] = 1;
a[i][1] = 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 (j = 1; j <= i; j++)
printf("%-4d", a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
第2个回答  2009-05-23
#include <iostream>
#include <stdio.h>
using namespace std;

void main()
{
int i,j,n=0;
int a[20][20];

for(i=0;i<20;i++)
for(j=0;j<20;j++)
a[i][j]=0;

while(n<1 || n>20){
cout<<"Input the number:";
cin>>n;
}

for(i=0;i<n;i++)
{
a[i][0]=1; /*第一列全置为一*/
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j]; /*每个数是上面两数之和*/
}

cout<<"output:"<<endl;
for(i=0;i<n;i++) /*输出杨辉三角*/
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
cout<<endl;
}
}
第3个回答  2009-05-23
×××××××××××××××××××××××××××××××××
上面的回答不是标准的C++
×××××××××××××××××××××××××××××××××
下列程序将# define N 15的15改为几 就输出几阶
×××××××××××××××××××××××××××××××××

# define N 15
# include <stdio.h>
int main()
{
int a[N][N]={0},i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
if(j==0&&i!=0)
{
a[i][j]=1;
printf("%5d",a[i][j]);
}
else if(a[i-1][j]==0||i==0)
{
a[i][j]=1;
printf("%5d\n\n",a[i][j]);
break;
}
else
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("%5d",a[i][j]);
}
}
printf("\n\n\n\n");
getchar();
return 0;
}
第4个回答  2012-11-04
#include<iostream>
#include<iomanip.h>//包含下面要用到的setw()
#define N 15
void main()
{
int i,j,d[N+1][N+1];
for(i=1;i<=N;i++)
{
d[i][1]=d[i][i]=1;
for(j=2;j<i;j++)
d[i][j]=d[i-1][j-1]+d[i-1][j];
}
for(i=1;i<=N;i++)
{
for(j=1;j<i+1;j++)
cout<<setw(5)<<d[i][j];//setw(5)就是之间空5个字符
cout<<endl;
}
cout<<endl;
}

c++中怎样打印三角函数杨辉三角。
1、首先打开vs2014,新建一个项目。2、新建一个main文件,添加头文件。3、添加main函数。4、接下来选择定义i,j变量。5、定义一个int数组。6、用for循环给数组a赋值。7、用for循环打印杨辉三角。

...小弟在这里求程序!!用C++编程打印杨辉三角形,输出形式和行数自定...
\/\/c++打印杨辉三角形#include<cstdio>#include<cstring>#include<iostream>#include<algorithm> using namespace std;const int maxn=1000+10; int a[2][maxn]; int main(){ printf("请输入杨辉三角层数:"); int cur=0,n;cin>>n; printf("\\n"); for(int i=1;i<=n;i+...

c++编程,打印杨辉三角形
include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn=1000+10;int a[2][maxn]; int main(){printf("请输入杨辉三角层数:");int cur=0,n;cin>>n;printf("\\n");for(int i=1;i<=n;i++,cur^=1){for(int j=1;j<=i;j++)...

C++编程题 输出杨辉三角前7行
cout << "1" << endl;\/\/ 输出最后一个 1}}这是一个很简单的可以打印杨辉三角的函数,输入参数 7,就可以打印前 7 行。

用c++编写程序,输入一个整数n,打印n行的杨辉三角(n为输入,并且小于14...
cout << "请输入杨辉三角的行数:";while(cin >> RowCount){ for(i = 0;i < RowCount;++i){ for(j = 1;j < RowCount - i;++j)\/\/打印第i行第一个元素前面的空格 { cout << " ";} for(k = 1;k <= i + 1;++k)\/\/打印第i行的所有元素 { cout << SanJiaoYang(i,k)...

...其系数构成杨辉三角形,利用队列写出打印杨辉三角形的前n行_百度知...
printf("使用说明:本程序可打印出一个n行的杨辉三角.\\n");printf("---\\n");printf("1.请输入杨辉三角的行数n.\\n");printf("2.按其它任意键退出.\\n");printf("---\\n");printf("请选择你要的操作:");scanf("%d",&choice);Choose(choice);} void Choose(int choice){ int n;swit...

C++用数组输出杨辉三角的前十行
\/\/杨辉三角 define NUM 10 void yahui(int * result,int num);void main(){ int yh[NUM];memset(yh,0,sizeof(int)*NUM);\/\/打印 for(int i=0;i<NUM;i++){ yahui(yh,i+1);for(int j=0;j<2*NUM-1;j++){ if(j%2!=0)cout<<' ';else{ if(yh[j\/2])cout<<yh[j\/2];...

我想用c++中的队列实现打印杨辉三角形,可是一直都是最后一行有错误,弄...
不清楚可以继续提问 include <iostream> include <deque> using namespace std;int s=0,t=0,rst,j;deque<int> que;void main(){ que.push_back(1);for(int i=1;i<10;i++){ cout<<endl;que.push_back(0);for(j=0;j0)cout<< rst<<" ";que.push_back(s+t);s=t;} } } ...

如下图,用C++编程求杨辉三角形前N行之和。尽量用数组
void main(){ int i,j,a[N][N],s=0;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]+a[i-1][j-1];for(i=0;i<N;i++){ for(j=0;j<=i;j++)printf ("%5d",a[i][j]);printf("\\n");} for(i=0;i<...

c++中 用队列写杨辉三角
\/\/杨辉三角#include<iostream>#include <iomanip>using namespace std;enum error_code {success,overflow,underflow};class queue{public: queue(); bool empty()const; bool full()const; error_code get_front(int & x)const; error_code append(const int x); error_code...

相似回答