急 问题描述:用c++编程杨辉三角: 输入形式: 输入整数n(n>=0且n<=12) 输出形式:在屏幕上输出n+1行。
【问题描述】在屏幕上显示如下杨辉三角形:
1
1 1
1 2 1
1 3 3 1
… … … … …
【输入形式】 输入整数n(n>=0且n<=12)
【输出形式】在屏幕上输出n+1行。
【输入样例】
3
【输出样例】
------***1
----***1***1
--***1***2***1
***1***3***3***1
ps:其中-和*都是空格位
即每个数字占四位 展开
代码如下,希望能解决您的问题。
#include "stdafx.h"
#include "iostream"
#include "iomanip"
#include "string"
using namespace std;
int main()
{
int n,**psk;
cout<<"请输入n的值(0~12):";
cin>>n;
psk=new int*[n];
for(int i=0;i<n;i++)
psk[i]=new int[n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
psk[i][j]=0;
for(int i=0;i<n;i++)
{ psk[i][0]=1;
psk[i][i]=1;
}
for(int i=2;i<n;i++)
for(int j=1;j<n;j++)
psk[i][j]=psk[i-1][j]+psk[i-1][j-1];
for(int i=0;i<n;i++)
{ for(int k=n-1;k>=i;k--)
cout<<" ";
for(int j=0;j<=i;j++)
cout<<setw(4)<<psk[i][j];
putchar(10);
}
for(int i=0;i<n;i++)
delete []psk[i];
delete [] psk;
return 0;
}
最简单代码:
#include <iostream>
#include <stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
int ** p=new int*[13];
int n=10000;
cout<<"请输入n的值:"<<endl;
cin>>n;
for(int i=0;i<=n;i++)
{
if(i%2==0) cout<<" ";
if(i%2==1 && n%2==0) cout<<" ";
for(int k=0;k<=(n-i)/2;k++)
cout<<" ";
p[i]=new int[i+1];
for(int j=0;j<=i;j++)
{
if(j==0 || j==i) p[i][j]=1;
else p[i][j]=p[i-1][j-1]+p[i-1][j];
cout<<setw(4)<<p[i][j];
}
cout<<endl;
}
system("pause");
return 0;
}