zoukankan      html  css  js  c++  java
  • java打印杨辉三角

    第一种实现:

    package com.jn.test;
    
    import java.util.Scanner;
    
    public class Triangle {
    
    	public static void main(String[] args) {
    	        Scanner sc = new Scanner(System.in);
    	        System.out.println("请输入要打印多少行:");
    	        int lines = sc.nextInt();
    	        int[] arr = new int[lines + 1];
    	        int previous = 1;
    	        for (int i = 1; i <= lines; i ++){
    	            for (int j = 1; j <= i; j++){
    	                int current = arr[j];
    	         /* 新位置的元素 = 该位置原来的元素 + 该位置的前一个位置的元素 */
    	                arr[j] = previous + current;  
    	                previous = current;
    	                System.out.print(arr[j] + " 	");
    	            }
    	            System.out.println(); //每层换行
    	        }
    	}
    }
    

    结果:

    请输入要打印多少行:
    10
    1 	
    1 	1 	
    1 	2 	1 	
    1 	3 	3 	1 	
    1 	4 	6 	4 	1 	
    1 	5 	10 	10 	5 	1 	
    1 	6 	15 	20 	15 	6 	1 	
    1 	7 	21 	35 	35 	21 	7 	1 	
    1 	8 	28 	56 	70 	56 	28 	8 	1 	
    1 	9 	36 	84 	126 	126 	84 	36 	9 	1 

    第二种实现:

    package com.jn.test;
    
    import java.util.Scanner;
    
    public class Triangle2 {
    
    	public static void main(String[] args) {
    	        Scanner sc = new Scanner(System.in);
    	        System.out.println("请输入要打印多少行:");
    	        int x = sc.nextInt();//输入几层是几层  
    	        int num[][] = new int[x][x];//这个数组有几层  
    	        for(int m=0;m<x;m++)//主要是对数组进行赋值  
    	        {  
    	            for(int n=0;n<=m;n++)//每一层的个数都是小于等于层数的,m代表层数,n代表着第几个数  
    	            {  
    	                if(n==0||m==n)//每一层的开头都是1,m==n的时候也是1,必须要这个,凡事都得有个开头   
    	                {  
    	                    num[m][n]=1;  
    	                }  
    	                else  
    	                    num[m][n]=num[m-1][n-1]+num[m-1][n];//这个就是递推的方法了,例如3=1+2,3的坐标就是3[3,1]=1[2,0]+2[2,1];  
    	            }  
    	        }  
    	        for(int i=0;i<x;i++)//主要是输出数组  
    	        {  
    	            for(int l=i;l<x;l++)//这个主要是打空格,好看一点,去掉就是直角三角形了  
    	            {  
    	                System.out.print(" ");  
    	            }  
    	            for(int j=x-i;j<=x;j++)//这个就是打印数组了,每层循环几次就几个  
    	            {  
    	                System.out.print(num[i][x-j]+" ");//不懂的可以把x替换成10,更加清楚点  
    	            }  
    	            System.out.println();//每层换行  
    	        }  
    	}
    }
    

    结果:

    请输入要打印多少行:
    10
              1 
             1 1 
            1 2 1 
           1 3 3 1 
          1 4 6 4 1 
         1 5 10 10 5 1 
        1 6 15 20 15 6 1 
       1 7 21 35 35 21 7 1 
      1 8 28 56 70 56 28 8 1 
     1 9 36 84 126 126 84 36 9 1 
    


  • 相关阅读:
    linux命令查询网站
    UTC(世界协调时间)时区和各个时区时间的转换
    dev-c++ 中写完源文件生成exe程序怎么避免运行闪退?
    numpy和time计时程序
    进化算法之粒子群算法和Matlab实现(多维)
    tf.config:GPU 的使用与分配(转载)
    限制TensorFlow只在CPU上运行的方法
    Python重要学习链接
    SpringCloud 之 Nacos 注册配置中心
    Jenkins 自动化部署入门详细教程
  • 原文地址:https://www.cnblogs.com/mlan/p/11060357.html
Copyright © 2011-2022 走看看