今天遇到一个很有趣的题目,用js来构建由字符串组成的金字塔图形,个人感觉这样的题目对锻炼逻辑思维,运用基础知识很有帮助,在此和大家分享。
首先贴上运行结果,大家会很快发现,这是从侧面,上方观测金字塔的结果,还统计了运用的石材(字符)数量。

代码则是由四个函数组成,可以传入任意的字符串进行构建
立即学习“Java免费学习笔记(深入)”;
//从侧面看金字塔
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中文网(www.php.cn)!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号