黑马程序员技术交流社区
标题:
打印杨辉三角的两种方法
[打印本页]
作者:
夜空中最亮的星
时间:
2015-6-26 22:08
标题:
打印杨辉三角的两种方法
杨辉三角:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
方法一:
杨辉三角的性质:
1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。
2、第n行的数字个数为n个。
3、第n行数字和为2^(n-1)。
4、每个数字等于上一行的左右两个数字之和。
class Triangle01
{
public static void main(String[] args)
{
int size = 5;
int[][] arr = new int[size][size];
for (int i = 0; i < size ; i++ )
{
for ( int k = i; k < size-1 ; k++ )
{
System.out.print(" ");
}
for (int j = 0; j <= i ; j++ )
{
if (j == 0 || j == i)
{
arr[i][j] = 1;
System.out.print(arr[i][j]+" ");
}
if ( i > 1 && j != 0 && i > j )
{
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
System.out.print(arr[i][j]+" ");
}
}
System.out.println();
}
}
}
复制代码
方法二:
与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即
二项式定理
二项式定理的公式为:(a+b)^n=C(n,0)a^n*b^0+C(n,1)a^(n-1)*b^1+...+C(n,r)a^(n-r)*b^r...+C(n,n)a^0*b^n
杨辉三角形同时对应于二项式定理的系数。n次的二项式系数对应杨辉三角形的n + 1行。例如在中,2次的二项式正好对应杨辉三角形第3行系数1 2 1。
class Triangle
{
public static void main(String[] args)
{
int size = 5;
int[][] arr = new int[size][size];
for ( int i = 0; i < size ; i++ )
{
for ( int k = i; k < size-1 ; k++ )
{
System.out.print(" ");
}
for ( int j = 0; j <= i ; j++ )
{
arr[i][j] = ArrShow(i,j);
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
public static int ArrShow(int i, int j){
int value = conbinations(i,j);
return value;
}
public static int conbinations(int n,int r){//计算二项式系数
if (n >= 0 && r>= 0){
int x = Permutations(n);
int y = Permutations(r);
int z = Permutations(n - r);
int conb = x / (y * z);
return conb;
}else{
System.out.println("您输入的数字有误");
}
return 0;
}
public static int Permutations(int n){//计算全排列
int s=1;
for (int i = 1; i <= n ; i++)
{
s *= i;
}
return s;
}
}
复制代码
作者:
进军黑马
时间:
2015-6-26 22:13
哦!原来这就是杨辉三角啊!!!赞,学习学习
作者:
空城dream
时间:
2015-6-27 23:18
杨辉三角,好棒。。。
作者:
小糊涂仙
时间:
2015-7-4 17:20
顶顶,快乐分享
作者:
357955778
时间:
2015-7-4 17:34
大神好厉害!
作者:
终极黑马
时间:
2015-7-4 17:39
路过!学习!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2