目录
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、结果图示