用c++编写程序,输入一个整数n,打印n行的杨辉三角(n为输入,并且小于14)
杨辉三角的形成规律是:1,每行的第一个数是1;2,每行的最后一个数是1;3,从第三行开始,除了第一个和最后一个数是1,其余的数是当前元素的前一行的同列元素与前一行前一列的...
杨辉三角的形成规律是:
1,每行的第一个数是1;
2,每行的最后一个数是1;
3,从第三行开始,除了第一个和最后一个数是1,其余的数是当前元素的前一行的同列元素与前一行前一列的元素之和:例如
1
1 1
1 2 1
... ... ... 展开
1,每行的第一个数是1;
2,每行的最后一个数是1;
3,从第三行开始,除了第一个和最后一个数是1,其余的数是当前元素的前一行的同列元素与前一行前一列的元素之和:例如
1
1 1
1 2 1
... ... ... 展开
3个回答
展开全部
前几天刚刚做了,呵呵
#include <iostream>
using namespace std;
//返回杨辉三角第x行第y列的值,起始行为第0行
int SanJiaoYang(int x,int y);
int main()
{
int RowCount,i,j,k;
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) << " ";
}
cout << endl;
}
cout << "请输入杨辉三角的行数:";
}
return 0;
}
//返回杨辉三角第x行第y列的值,起始行为第0行
int SanJiaoYang(int x,int y)
{
int z;
if((y == 1) || (y == x + 1))
{
z = 1;
}
else//y!=1且y!=x
{
z = SanJiaoYang(x - 1,y - 1) + SanJiaoYang(x - 1,y);
}
return z;
}
#include <iostream>
using namespace std;
//返回杨辉三角第x行第y列的值,起始行为第0行
int SanJiaoYang(int x,int y);
int main()
{
int RowCount,i,j,k;
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) << " ";
}
cout << endl;
}
cout << "请输入杨辉三角的行数:";
}
return 0;
}
//返回杨辉三角第x行第y列的值,起始行为第0行
int SanJiaoYang(int x,int y)
{
int z;
if((y == 1) || (y == x + 1))
{
z = 1;
}
else//y!=1且y!=x
{
z = SanJiaoYang(x - 1,y - 1) + SanJiaoYang(x - 1,y);
}
return z;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int n,i,j,a[15][15];
scanf("%d",&n);
for(i=0;i<=n;i++) //Ö»ÊÇΪÁ˽«±ß½çÔªËظ³Îª0,·½±ã¼ÆËã
{
a[0][i]=0;
a[i][0]=0;
}
a[1][0]=1;
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j];
a[i][j]+=a[i][j-1];
printf("%d\t",a[i][j]);
}
a[i][j]=a[i][j-1];
printf("%d\t",a[i][j]);
printf("\n");
}
}
void main()
{
int n,i,j,a[15][15];
scanf("%d",&n);
for(i=0;i<=n;i++) //Ö»ÊÇΪÁ˽«±ß½çÔªËظ³Îª0,·½±ã¼ÆËã
{
a[0][i]=0;
a[i][0]=0;
}
a[1][0]=1;
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j];
a[i][j]+=a[i][j-1];
printf("%d\t",a[i][j]);
}
a[i][j]=a[i][j-1];
printf("%d\t",a[i][j]);
printf("\n");
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
using namespace std;
int main(void){
int num, i, j;
int array[100][101];
for (i = 0; i < 100; i++){
for (j = 0 ; j < i+1; j++){
if (j > 0 && i > 0 && j < i){
array[i][j] = array[i-1][j-1] + array[i-1][j];
}
else{
array[i][j] = 1;
}
}
}
while (cin >> num){
for (i = 0; i < num; i++){
for (j = 0; j < i+1; j++){
cout << array[i][j];
}
cout << endl;
}
}
return 0;
}
using namespace std;
int main(void){
int num, i, j;
int array[100][101];
for (i = 0; i < 100; i++){
for (j = 0 ; j < i+1; j++){
if (j > 0 && i > 0 && j < i){
array[i][j] = array[i-1][j-1] + array[i-1][j];
}
else{
array[i][j] = 1;
}
}
}
while (cin >> num){
for (i = 0; i < num; i++){
for (j = 0; j < i+1; j++){
cout << array[i][j];
}
cout << endl;
}
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询