HTML 杨辉三角,杨辉三角的实现

该代码展示了如何使用Java计算并打印杨辉三角的前N行,包括循环和递归两种方法。杨辉三角是组合数学中一个重要概念,其每个数是它上一行相邻两个数的和。代码中还包含了组合C(n, m)的计算,并使用了BigInteger处理大整数。
摘要由CSDN通过智能技术生成

代码:

import java.math.BigInteger;

public class Main {

static int N=12;//输出多少行

static int max= C(N/2,N).length();//单个字符长度

public static void main(String[] args) {

杨辉三角_循环(N);

杨辉三角_递归(N);

}

public static void 杨辉三角_循环(int n){

for (int i = 0; i < n; i++) {

留白(N-1-i);

for (int j = 0;j < i+1;j++)

{

fmt(C(j,i));

留白(1);

}

System.out.println();

}

}

public static void 杨辉三角_递归(int n){

if (n==0)return;

留白(n-1);

for (int j = 0;j < N-n+1;j++)

{

fmt(C(j,N-n));

留白(1);

}

System.out.println();

杨辉三角_递归(n-1);

}

public static void 留白(int n){//输出n个格式空白

for (int i = 0; i < n; i++) {

fmt(" ");

}

}

public static void fmt(String s){//以最大数字长度输出

System.out.print(String.format("%-"+max+"s",s));

}

public static String C(int m,int n){//组合C(n,m)

return new BigInteger(A(m,n)).divide(new BigInteger(J(m))).toString();

}

public static String A(int m,int n){//排列A(n,m)

return new BigInteger(J(n)).divide(new BigInteger(J(n-m))).toString();

};

public static String J(int n){//n的阶乘

if(n==0||n==1)

return "1";

BigInteger res=new BigInteger("1");

for (int i = 2;i < n+1;i++) res=res.multiply(BigInteger.valueOf(i));

return res.toString();

};

}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值