最近,看一些东西突然碰到了杨辉三角,有点懵,故查了点资料,
首先看一下杨辉三角形式:
首先,要想编程解决杨辉三角,必先了解其性质:
上述那么多,我们真正需要的也就是第一个,每个数等于它上方两数之和。
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include<cstdio>
#include<iostream>
using
namespace
std;
long
long
int
Triangle[1000][1000];
int
main()
{
Triangle[1][1]=1;
//初始化
Triangle[2][1]=1;Triangle[2][2]=1;
for
(
int
i=3;i<=50;i++)
//制作三角。
{
for
(
int
j=1;j<=i;j++)
{
Triangle[i][j]=Triangle[i-1][j-1]+Triangle[i-1][j];
}
}
for
(
int
i=1;i<=50;i++)
//输出
{
for
(
int
j=1;j<=i;j++)
{
cout<<Triangle[i][j]<<
" "
;
}
cout<<endl;
}
return
0;
}
|
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
class
Program
{
public
int
yanghui(
int
value)
{
if
(value<3)
return
1;
int
[,]arry=
new
int
[value,value];
Console.WriteLine(
"数组为:"
);
for
(
int
i=0;i<value;i++)
{
string
str=
""
;
str=str.PadLeft(value-i);
Console.Write(str);
for
(
int
j=0;j<=i;j++)
{
if
(i==j||j==0)
arry[i,j]=1;
else
arry[i,j]=arry[i-1,j-1]+arry[i-1,j];
Console.Write(arry[i,j]+
""
);
}
Console.WriteLine();
}
}
static
void
Main(
string
[]args)
{
Program p=
new
Program();
Console.WriteLine(
"请输入数组值:"
);
if
(p.yanghui(Convert.ToInt16(Console.ReadLine())))
Console.WriteLine(
"输入数值必须大于3"
);
Console.Readkey();
}
}
|
C
以下的代码均用标准 C 语言写成,可以被包括 MSVC(含 VC6)、GCC 的多种 C 编译器编译。
这个算法使用只行列位置和左侧的数值算出数值:
1
2
3
4
|