C++编程数字三角形

也可以用递归做111121133114641151010511615201561172135352171182856705628811936841261268436911... 也可以用递归做
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
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
最好用C++的
比如#include<iostream>
using namespace std;
谢谢啊
展开
 我来答
youz
2008-09-21 · TA获得超过2.2万个赞
知道大有可为答主
回答量:3757
采纳率:0%
帮助的人:2075万
展开全部
我说楼主你还真懒啊,都不想动脑子的- -:
#include <iostream>
#include <iomanip>

using namespace std;

void Yang(int line);

void Line(void);

int main(int argc, char *argv[])
{
Yang(9);

system("PAUSE");
return EXIT_SUCCESS;
}

void Yang(int line)
{
int tri[line][line];

for (int i=0; i<line; i++)
{
for (int k=line-1; k>=i; k--)
{
cout << setw(3) << ' ';
}

for (int col=0; col<=i; col++)
{
if (0 == col || i == col)
{
tri[i][col] = 1;
}
else
{
tri[i][col] = tri[i-1][col-1] + tri[i-1][col];
}

cout << setw(3) << tri[i][col] << " ";
}

cout << endl;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_一半疯子_
2008-09-21 · TA获得超过2006个赞
知道大有可为答主
回答量:1907
采纳率:50%
帮助的人:1996万
展开全部
#include<iostream>
using namespace std;

int c(int x,int y) //递归求第x行第y列的值
{
int z;
if((y==0)||(y==x)) return 1; //如果y在第x行的第0或第x列,就输出1
z=c(x-1,y-1)+c(x-1,y);
return z;
}

void main()
{
int i,j,n=13;
cout<<"N=";
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<35-2.5*i;j++) cout<<" "; //美化
for(j=0;j<i+1;j++) printf("%5d",c(i,j));
cout<<"\n";
}
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
隐墨出琛瑞
2019-09-13 · TA获得超过3669个赞
知道大有可为答主
回答量:3199
采纳率:31%
帮助的人:238万
展开全部
#include
using
namespace
std;
template<
int
i,
int
j
>
struct
c
{
static
const
int
r
=
c<
i
-
1,
j
-
1
>::r
+
c<
i
-
1,
j
>::r;
};
template<
int
i
>
struct
c
<
i,
i
>
{
static
const
int
r
=
1;
};
template<
int
i
>
struct
c
<
i,
0
>
{
static
const
int
r
=
1;
};
template>
struct
c
<
0,
0
>
{
static
const
int
r
=
1;
};
template<
int
i,
int
j
>
struct
l
{
l()
{
cout
<<
c<
i,
j
>::r
<<
"
";
l<
i,
j
-
1
>();
}
};
template<
int
i
>
struct
l<
i
,
0
>
{
l()
{
cout
<<
c<
i,
0
>::r
<<
endl;
}
};
template<
int
i
>
struct
y
{
y()
{
y<
i
-
1
>();
l<
i,
i
>();
}
};
template>
struct
y<
0
>
{
y()
{
l<
0,
0
>();
}
};
int
main()
{
y<
12
>();
return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
b071070044
2008-09-22 · 超过20用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:62万
展开全部
可以建个数组a[n][m]=a[n-1][m-1]+a[n-1][m],(浪费内存,可以利用指针)
(多动脑才有提高)

或者直接写个函数 专门算a[i][j]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dtimes6
2008-09-21 · TA获得超过691个赞
知道小有建树答主
回答量:347
采纳率:0%
帮助的人:128万
展开全部
#include <iostream>
using namespace std;

template< int I, int J > struct C { static const int r = C< I - 1, J - 1 >::r + C< I - 1, J >::r; };
template< int I > struct C < I, I > { static const int r = 1; };
template< int I > struct C < I, 0 > { static const int r = 1; };
template<> struct C < 0, 0 > { static const int r = 1; };

template< int I, int J > struct L { L() { cout << C< I, J >::r << " "; L< I, J - 1 >(); } };
template< int I > struct L< I , 0 > { L() { cout << C< I, 0 >::r << endl; } };

template< int I > struct Y { Y() { Y< I - 1 >(); L< I, I >(); } };
template<> struct Y< 0 > { Y() { L< 0, 0 >(); } };

int main() {
Y< 12 >();
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式