<html>
<head></head>
<body>
<script type="text/javascript">
/**
* 第一层个数:1*2-1 = 1 第一层空白:最高层-当前层
*** 第二层个数:2*2-1 = 3 第二层空白:最高层-当前层
***** 第三层个数:3*2-1 = 5 第三层空白:最高层-当前层
******* 第四层个数:4*2-1 = 7 第四层空白:最高层-当前层
********* 第五层个数:5*2-1 = 9 第五层空白:最高层-当前层
*********** 第n层个数: n*2-1 = 2n-1 第n层空白: 最高层-n层
*/
function pyramid(level, symbol) {
var level = (typeof level == 'undefined') ? 5 : level;
var symbol = (typeof symbol == 'undefined') ? '*' : symbol;
var data = "";
var subLoopCount = 0;
var space = " ";
for (var i=1; i<=level; i++) {
symbolCount = i*2-1; // 当前层星个数
spaceCount = level-i; // 当前层空白数
subLoopCount = symbolCount + spaceCount; // 当前层循环的次数
for (var j=1; j<=subLoopCount; j++) {
if (j <= spaceCount) { // 如果j的值小于等于空白数量时赋加空白
data += space;
} else {// 否则赋加星
data += symbol;
}
}
data += '<br />'; // 当前层输出换行符
}
return data;
}
/**
*********** 第n层个数: n*2-1 = 2n-1 第n层空白:最高层-n层
********* 第五层个数:5*2-1 = 9第五层空白:最高层-当前层
******* 第四层个数:4*2-1 = 7第四层空白:最高层-当前层
***** 第三层个数:3*2-1 = 5第三层空白:最高层-当前层
*** 第二层个数:2*2-1 = 3第二层空白:最高层-当前层
* 第一层个数:1*2-1 = 1第一层空白:最高层-当前层
*/
function pyramidReverse(level, symbol) {
var level = (typeof level == 'undefined') ? 5 : level;
var symbol = (typeof symbol == 'undefined') ? '*' : symbol;
var data = "";
var subLoopCount = 0;
var space = " ";
for (var i=level; i>=1; i--) {
symbolCount = i*2-1;
spaceCount = level-i;
subLoopCount = symbolCount + spaceCount;
for (var j=1; j<=subLoopCount; j++) {
if (j <= spaceCount) {
data += space;
} else {
data += symbol;
}
}
data += '<br />';
}
return data;
}
/**
* 第一层个数:1*2-1 = 1第一层空白:最高层-当前层
* * 第二层个数:2*2-1 = 3第二层空白:最高层-当前层
* * 第三层个数:3*2-1 = 5第三层空白:最高层-当前层
* * 第四层个数:4*2-1 = 7第四层空白:最高层-当前层
* * 第五层个数:5*2-1 = 9 第五层空白:最高层-当前层
* * * * * * 第n层个数: n*2-1 = 2n-1 第n层空白:最高层-n层
*/
function hollowPyramid(level, symbol) {
var level = (typeof level == 'undefined') ? 5 : level;
var symbol = (typeof symbol == 'undefined') ? '*' : symbol;
var data = "";
var subLoopCount = 0;
var space = " ";
for (var i=1; i<=level; i++) {
symbolCount = i*2-1;
spaceCount = level-i;
subLoopCount = symbolCount + spaceCount;
for (var j=0; j<subLoopCount; j++) {
if (j < spaceCount) {
data += space;
} else {
if (j==spaceCount || j==(subLoopCount-1) || i==level) {
if (i==level && j%2) {
data += space;
} else {
data += symbol;
}
} else {
data += space;
}
}
}
data += '<br />';// 当前层输出换行符
}
return data;
}
function hollowPyramidReverse(level, symbol) {
var level = (typeof level == 'undefined') ? 5 : level;
var symbol = (typeof symbol == 'undefined') ? '*' : symbol;
var data = "";
var subLoopCount = 0;
var space = " ";
for (var i=level; i>=1; i--) {
symbolCount = i*2-1;
spaceCount = level-i;
subLoopCount = symbolCount + spaceCount;
for (var j=0; j<subLoopCount; j++) {
if (j < spaceCount) {
data += space;
} else {
if (j==spaceCount || j==(subLoopCount-1) || i==level) {
if (i==level && j%2) {
data += space;
} else {
data += symbol;
}
} else {
data += space;
}
}
}
data += '<br />';// 当前层输出换行符
}
return data;
}
function topBottom(level, symbol) {
var level = (typeof level == 'undefined') ? 5 : level;
var symbol = (typeof symbol == 'undefined') ? '*' : symbol;
var data = "";
var subLoopCount = 0;
var space = " ";
for (var i=1; i<=level; i++) {
symbolCount = i*2-1;// 当前层星个数
spaceCount = level-i;// 当前层空白数
subLoopCount = symbolCount + spaceCount;// 当前层循环的次数
for (var j=0; j<subLoopCount; j++) {
if (j < spaceCount) {// 如果j的值小于等于空白数量时赋加空白
data += space;
} else {
if (j==spaceCount || j==(subLoopCount-1) || i==level) {
if (i==level && j%2) {
data += space;
} else {
data += symbol;
}
} else {
data += space;
}
}
}
data += '<br />';// 当前层输出换行符
}
for (var i=level-1; i>=1; i--) {
symbolCount = i*2-1;// 当前层星个数
spaceCount = level-i;// 当前层空白数
subLoopCount = symbolCount + spaceCount;// 当前层循环的次数
for (var j=0; j<subLoopCount; j++) {
if (j < spaceCount) {// 如果j的值小于等于空白数量时赋加空白
data += space;
} else {
if (j==spaceCount || j==(subLoopCount-1) || i==level) {
if (i==level && j%2) {
data += space;
} else {
data += symbol;
}
} else {
data += space;
}
}
}
data += '<br />';// 当前层输出换行符
}
return data;
}
function echo(data) {
document.write(data + '<hr />');
}
window.onload = function() {
echo(pyramid(9));
echo(hollowPyramid(7));
echo(pyramidReverse(8));
echo(hollowPyramidReverse(6));
echo(topBottom(5));
}
</script>
</body>
</html>