- /* 杨辉三角时间和空间最优算法 */
- import java.util.Scanner;
- class YangHuiSanJiao
- {
- public static void main(String[] args)
- {
- Scanner sc = new Scanner(System.in);
- System.out.print("请输入需要打印的杨辉三角的高度:");
- int s = 1, h = sc.nextInt(); // 数值和高度, 输入层数
- for(int i = 0; i < h; i++)
- {
- System.out.print(" ");
- }
- System.out.println(" 1"); // 输出第一个 1
- for (int i = 2; i <= h; s = 1, i++) // 行数 i 从 2 到层高
- {
- for(int j = i; j <= h; j++)
- {
- System.out.print(" ");
- }
- System.out.print(" "+1);
- if(i == 2)
- {
- System.out.print(" ");
- }
- for (int j = 1; j <= i - 2; j++) // 列位置 j 绕过第一个直接开始循环
- {
- s = (i - j) * s / j;
- if(j == 1)
- {
- for(int k = 0; k < 6 - (s+"").length(); k++){
- System.out.print(" ");
- }
- }
- System.out.print(s + " ");
- for(int k = 0; k < 5 - (s+"").length(); k++){
- System.out.print(" ");
- }
- }
- System.out.println(1+" ");
- }
- }
- }
复制代码
等腰显示自己调整吧,太蛋疼了…… |