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

论坛 期权论坛 脚本     
匿名技术用户   2020-12-29 07:37   218   0

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


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);
 }

}


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP