目录

2、杨辉三角形的打印

2.1代码段 

2.2运行结果 

3、求阶乘 代码段

3.1、结果图示


 


2、杨辉三角形的打印

这个问题的关键求解步骤就是分析出来一个规律。某一项等于它的竖直方向上的前一项+竖直方向前一项的左边个项的值!

二维数组简单表示为arr[i][j] = arr[i-1][j]+arr[i-1][j-1]

2.1代码段 

package com.yuanfeng.test;

import org.junit.Test;

/**
 * @ClassName YangHuiTriangle
 * @Description T0D0
 * @Author yuanfeng
 * @Date 2019/7/21 17:22
 * @Version 1.0
 **/
public class YangHuiTriangle {


    public static void main(String[] args) {
         int[] arr = new int[9];
         int l,r;
        System.out.println("1");
        for(int i = 1;i<=8;i++){

            l = 1;
            System.out.print(l+" ");

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

                r=arr[j];//每个数等于前面一个数加上前面一个数左边那个数(arr[j] = l+r)
                arr[j]=l+r;/*每个数是上面两数之和*/
                l=r;
                System.out.print(arr[j]+" ");
            }
            System.out.println();
        }
    }

    @Test
    public  void test(){
        int[][] arr = new int[8][8];

        for(int i = 0;i<arr.length;i++){

            for (int j = 0;j<=i;j++){
                //第一列全是1,所以j==0,arr[1][1]必须确定,所以i == 1,j == 1
                if(j == 0 || (i ==1 && j == 1)) {
                    arr[i][j] = 1;
                }else {
                    arr[i][j] = arr[i-1][j]+arr[i-1][j-1];
                }
            }
        }
        //打印
        for(int i = 0;i<arr.length;i++) {

            for (int j = 0; j < arr[0].length; j++) {
                if(arr[i][j] == 0){
                    continue;//这一是关键
                }
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();

        }
    }
}

 

2.2运行结果 

3、求阶乘 代码段

   public static void testFactorial(){

        System.out.println("请输入阶乘的数值:");

        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        if(n < 1){
            System.out.println("无效数据");
            return;
        }
        System.out.print(n+"!=");
        int result = 1;
        for (int i = 1;i<=n;i++){
            result = result*i;//依次阶乘
            if(i == n){
                System.out.print(i+"=");
            }else
            System.out.print(i+"x");
        }
        System.out.print(result);
    }

3.1、结果图示