不用数组实现杨辉三角(巴斯卡三角形)

这个思想是很先进,所以分享了,大家可以参考一下,


import java.util.Scanner;
/**
 * 输出的结果为为下所示:
 *           	   1               
               1      1            
            1      2      1         
         1      3      3      1      
      1      4      6      4      1   
 * @author 王新
 *
 */
public class Test {

	public static long combi(int n, int r) {
		long p = 1;
		//思想就是在每一行的开始第一个数字是1,然后第二个数字是前一个数字乘以行数-1,再除以循环的次数就行可以了
		for (int i = 1; i <= r; i++)
			p = p * (n - i + 1) / i;
		return p;
	}

	public static void show(int n) {
		long tem ;
		for (int i = 0; i <n; i++) {
			for (int j = 0; j <n; j++) {
				if (j == 0)
					for (int k = 0; k <= (n - i); k++)
						System.out.print("   ");
				else
					System.out.print("   ");
				tem = combi(i,j);
				if(tem!=0)
					System.out.print(tem+"   ");
			}
			System.out.println();
		}
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("输入层数:");
		int n = sc.nextInt();

		show(n);
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值