ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript は文字列ピラミッドを構築します

JavaScript は文字列ピラミッドを構築します

黄舟
黄舟オリジナル
2017-02-15 14:52:171699ブラウズ

今日は、JS を使用して文字列で構成されるピラミッド グラフィックを構築するという非常に興味深いトピックに遭遇しました。このようなトピックは、論理的思考を訓練し、基礎知識を応用するのに非常に役立つと個人的に感じたので、それを共有したいと思います。 。

まず、実行結果を投稿します。これはピラミッドを横と上から観察した結果であり、使用された石(文字)の数もカウントしていることがすぐにわかります。

コードは、構築のために任意の文字列を渡すことができる 4 つの関数で構成されています

//从侧面看金字塔
		function watchPyramidFromTheSide(characters) {
			var str = "";
			for(var i=characters.length-1;i>=0;i--){
				for(var j=0;j<i;j++){
					str += " ";
				}
				var num = 2 * characters.length - 1 - j * 2;
				for(j=0;j<num;j++){
					str += characters.charAt(i);
				}
				for(j=0;j<i;j++){
					str += " ";
				}
				if(i>0){
					str += "\n";
				}
			}
			return str;
		}
		
		//从上方看金字塔
		function watchPyramidFromAbove(characters) {
			var matrix = [];
			var str = "";
			//边最长为
			var sideLongest = characters.length * 2 - 1;
			for(var i=0;i<characters.length;i++){
				var chr = characters.charAt(i);
				for(var j=i;j<sideLongest-i;j++){
					if(!matrix[j]){
						matrix[j] = new Array(sideLongest);
					}
					for(var k=i;k<sideLongest-i;k++){
						matrix[j][k] = chr;
					}
				}
			}
			//组合字符串
			for(i=0;i<matrix.length;i++){
				str += matrix[i].join("");
				if(i<matrix.length-1){
					str += "\n";
				}
			}
			return str;
		}
		
		//能看到的金字塔字符数
		function countVisibleCharactersOfThePyramid(characters) {
			return Math.pow(characters.length * 2 - 1,2);
		}
		
		//金字塔总字符数
		function countAllCharactersOfThePyramid(characters) {
			var len = characters.length;
			var count = 0;
			while(len >= 1){
				count += Math.pow(2 * len - 1,2);
				len--;
			}
			return count;
		}

上記は、文字列ピラミッドを構築するための JavaScript の内容であり、その他の関連コンテンツPHP 中国語 Web サイト (www.php.cn) にご注意ください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。