二维数组打印杨辉三角

一共搞了三个版本~虽然核心算法是一样的,但是我说是三个就是三个!!!

一、普通版

let readline=require("readline-sync");
console.log("请输入杨辉三角的行数:");
let line = parseInt(readline.question(""));
let arr=[[1],[1,1]];
for(let i=2;i<line;i++){
	arr[i]=[];
	for(let j=0;j<=i;j++){
		arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
		if (j==0||j==i) {
			arr[i][j]=1;
		}
	}
}
for(let i=0;i<line;i++){
	let str="";
	for(let j=0;j<line-i;j++){
		str+=" ";
	}
	str+=arr[i].join();
	console.log(str);
}

  效果:

由于三角无法对齐,所以有了改进版~

二、改进版

let readline=require("readline-sync");
console.log("请输入杨辉三角的行数:");
let line = parseInt(readline.question(""));
let arr=[[1],[1,1]];
for(let i=2;i<line;i++){
	arr[i]=[];
	for(let j=0;j<=i;j++){
		arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
		if (j==0||j==i) {
			arr[i][j]=1;
		}
	}
}
for(let i=0;i<line;i++){
	let str="";
	let n=(arr[line-1].join().length-arr[i].join().length)/2;
	for(let j=0;j<n;j++){
		str+=" ";
	}
	str+=arr[i].join();
	console.log(str);
}

  效果:

这个三角看起来还是怪怪的诶~所以有了改进版2.0

三、改进版2.0

let readline=require("readline-sync");
console.log("请输入杨辉三角的行数:");
let line = parseInt(readline.question(""));
let arr=[[1],[1,1]];
for(let i=2;i<line;i++){
	arr[i]=[];
	for(let j=0;j<=i;j++){
		arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
		if (j==0||j==i) {
			arr[i][j]=1;
		}
	}
}
for(let i=0;i<line;i++){
	let str="";
	let n=(arr[line-1].join().length-arr[i].join().length)/2;
	for(let j=0;j<n;j++){
		str+=" ";
	}
	str+=arr[i].join();
	console.log(str+"
");
}

  效果:

 

这次看起来是不是舒服多啦~感觉自己棒棒哒,给自己鼓鼓掌!【啪啪啪】

原文地址:https://www.cnblogs.com/tortoises/p/7588956.html