您的位置:首页 > Web前端 > JavaScript

Javascript打印金字塔,倒立金字塔,空心金字塔,菱形,空心菱形等

2015-07-15 16:06 926 查看
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>金字塔-菱形-空心</title>
<script>
var n=window.prompt("请输入行数");
/* 右半边    星号

*            1
**           2
***          3
****         4
第i行,空格无,星号i */
document.write("正右半边<br>");
for(i=1;i<=n;i++){//行数
for(j=1;j<=i;j++){
document.write("*");//打印每行星号
}
document.write("<br />");
}

/* 左半边    空格     星号

*        4-1       1
**        4-2       2
***        4-3       3
****        4-4       4
第i行,空格n-i,星号i */
document.write("正左半边<br>");
for (i=1; i <= n; i++) {
for(j=1;j<=n-i;j++){
document.write(" ");//打印每行空格

}
for(k=1;k<=i;k++){
document.write("*");//打印每行星号
}
document.write("<br/>");

}
/*金字塔       空格         星号

*        3=4-1        1=2*1-1
***       2=4-2        3=2*2-1
*****      1=4-1        5=2*3-1
*******     0=4-4        7=2*4-1
第i行,空格n-i,星号2*i-1 */
document.write("正金字塔<br/>");
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++){
document.write(" ");
}
for(k=1;k<=2*i-1;k++){
document.write("*")
}
document.write("<br/>")
}

/*倒右边   星号

****         4
***          3
**           2
*            1
第i行,空格n-i,星号n-i+1 */

document.write("倒右半边<br/>");
for (var i = 1; i<=n; i++) {
for(j=1;j<=n-i+1;j++){
document.write("*");
}
document.write("<br/>");
}

/*倒左半边     空格         星号

****        0=4-4=1-1     4=4-1+1
***        1=4-3=2-1     3=4-2+1
**        2=4-2=3-1     2=4-3+1
*        3=4-1=4-1     1=4-4+1
第i行,空格i-1;星号n-i+1 */

document.write("倒左半边<br/>");
for(i=1;i<=n;i++){
for(j=1;j<=i-1;j++){
document.write(" ");//打印每行空格
}
for(k=1;k<=n-i+1;k++){
document.write("*");//打印每行星号
}
document.write("<br/>");
}

/*倒金字塔        空格              星号

*******        0=4-4=1-1        7=2*4-1
*****         1=4-3=2-1        5=2*3-1
***          2=4-2=3-1        3=2*2-1
*           3=4-1=4-1        1=2*1-1
第i行,空格i-1;星号2*(n-i+1)-1  */
document.write("倒金字塔<br/>");
for(i=1;i<=n;i++){
for(j=1;j<=i-1;j++){
document.write(" ");
}
for(k=1;k<=2*(n-i+1)-1;k++){
document.write("*");
}
document.write("<br/>");
}

/*菱形
*
***
*****
*******
*****
***
*
思路:先打印上半部分,再打印下半部分*/
document.write("菱形<br/>");
//打印菱形上半部分
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++){
document.write(" ");
}
for(k=1;k<=2*i-1;k++){
document.write("*");
}
document.write("<br/>");
}
//打印菱形下半部分
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){//要去掉下半部分的最上一行,第二行变为第一行,每行最前面的空格加一个,所以j<=i,而不是j<=j-1;
document.write(" ");
}
for(k=1;k<=2*(n-i)-1;k++){//第一行为原来第二行,星号个数也随之变化;
document.write("*");
}
document.write("<br/>");
}

/*空心正三角形
*
* *
*   *
*******
思路:边上的打印星号,其他的打印空格,最后一行打印星号 */
document.write("空心正三角形<br/>");
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++){
document.write(" ");
}
for(k=1;k<=2*i-1;k++){
if(i==n){//最后一行星号全打印出来
document.write("*")
}
else if(k==1||k==2*i-1){//打印两边上的星号
document.write("*")
}
else{
document.write(" ");//打印空心
}
}
document.write("<br/>");
}

/*空心倒三角形

*******
*   *
* *
*
思路:边上的打印星号,其他的打印空格,第一行打印星号 */
document.write("空心倒三角形<br/>");
for(i=1;i<=n;i++){
for(j=1;j<=i-1;j++){
document.write(" ");
}
for(k=1;k<=2*(n-i)+1;k++){
if (i==1) {//打印第一行星号
document.write("*");
}else if(k==1||k==2*(n-i)+1){//打印两边上的星号
document.write("*");
}else{
document.write(" ");//打印空心
}
}
document.write("<br/>");
}

/*空心菱形

*
* *
*   *
* *
*
思路:和打印菱形一样,先打印上半部分,再打印下半部分 */
document.write("空心菱形<br/>");
//上半部分
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++){
document.write(" ");
}
for(k=1;k<=2*i-1;k++){
if (k==1||k==2*i-1) {
document.write("*");//打印边上星号
}else{
document.write(" ")//打印空心空格
}
}
document.write("<br/>");
}
// 下半部分
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){//每行最前面的空格
document.write(" ");
}
for(k=1;k<=2*(n-i)-1;k++){
if (k==1||k==2*(n-i)-1) {
document.write("*");
}else{
document.write(" ");
}
}
document.write("<br/>");
}
</script>
</head>
<body>

</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: