java 使用for循环打印杨辉三角形

首先需要说明的问题: 什么是杨辉三角形?

如图所示:杨辉三角形由数字排列,基本的特点是两侧的数值均为1,其它位置的数值是基正上方的数值与其左上方的数值之和.

代码实现:

package test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;

public class Demo{public static void main(String[] args) throws Exception{
        
//        scanner();
//        redirectOutputStream();
//        encode();
        triangle();
    }

    @SuppressWarnings("resource")
    public static void scanner()
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的名字:");
        String line = scanner.nextLine();
        System.out.println(line);
    }
    
    public static void redirectOutputStream(){
     //重定向系统输出流
        //D:UsersHoonick_ChengDesktopstack.txt
        try
        {
            PrintStream out = System.out;
            String filePath = "D:"+ File.separator + "Users"+File.separator
                    +"Hoonick_Cheng"+File.separator+"Desktop"+File.separator+"log.txt";
            PrintStream ps = new PrintStream(filePath);
            System.setOut(ps);
            int age = 18;
            System.out.println("定义对象年龄为: " + age);
            String sex = "男";
            System.out.println("定义对象性别为: " + sex);
            String info = "这是个" + sex + "孩子,已经" + age + "岁了!";
            System.out.println("整合两个变量为: " + info);
            System.setOut(out);
            System.out.println("程序运行完毕,请查看日志文档!");
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
    }

    public static void encode(){
        //数A与数B异或两次得到的还是A,可以用于简单的加密解密
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个英文字符串或解密字符串:");
        String password = scanner.nextLine();
        char[] charArray = password.toCharArray();
        for (int i = 0; i < charArray.length; i++)
        {
            charArray[i] = (char) (charArray[i] ^ 20000);
        }
        
        System.out.println("加密或解密的结果如下:");
        System.err.println(new String(charArray));
    }

    public static void triangle(){
        int arr[][] = new int[10][];
        for (int i = 0; i < arr.length; i++)
        {
            arr[i] = new int[i+1];
            for (int j = 0; j <=i; j++)
            {
                if (i==0||j==0||j==i)
                {
                    arr[i][j] = 1;//两侧的数值均为1
                }else {
                    arr[i][j] = arr[i-1][j] + arr[i-1][j-1];//正上方的数值与其左上方的数值之和
                }
                System.out.print(arr[i][j] + "	");
            }
            System.out.println();
        }
    }
}
原文地址:https://www.cnblogs.com/hoonick/p/9972807.html