首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

在屏幕下用*输出n行金字塔图案

2013-01-02 
在屏幕上用*输出n行金字塔图案老师说用二重循环,我刚学不会,请高人搭救(用java)[解决办法]给你一个代码吧;

在屏幕上用*输出n行金字塔图案
老师说用二重循环,我刚学不会,请高人搭救(用java)
[解决办法]
给你一个代码吧;你自己参考一下;
public class Jinzita {

/**
 * 输出金字塔
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
//金字塔的阶梯行数
int line=30;

//每个阶梯的砖
int num=1;

//i控制行数
        for(int i=1;i<=line;i++){
        
        //j循环控制打印空格;
        for(int j=0;j<line-i;j++){
        System.out.print(" ");
        }
        
        //k循环控制打印*
        for(int k=0;k<num;k++)
        {
        System.out.print("*");
        }
        
        //换行
        System.out.print("\n");
        
        num+=2;
        }
}

}

[解决办法]

引用:
一点思绪都没有,我想到用递归,但是还没学,能给个关键代码吗?

引用:

外层循环负责控制N行,内层循环负责输出空格和星号(根据外层循环层级,配合if)。

这个还是自己尝试写代码吧,不要直接求成品,对你自己没帮助。


//递归么

    public static void main(String[] args) {
        sf(5);
    }

    static void sf(int i) {
        sf(i,1);
    }
    static void sf(int i,int k){
        if(k>i)return;
        printfB(" ",i-k);
        printfB("*",k*2-1);
        System.out.println("");
        sf(i,k+1);
    }

    static void printfB(String k, int i) {
        if (i < 1) {
            return;
        }
        System.out.print(k);
        printfB(k, i - 1);
    }

//这个更短一点

    static void sf(int i) {
        for (int j = 0; j < i; j++) {
            String str = String.format("%" + (i - j) + "s%0" + (j * 2 + 1) + "d", " ", 0);
            System.out.println(str.replaceAll("0", "*"));


        }
    }


[解决办法]
System.out.println("      *");
System.out.println("     ***");
System.out.println("    *****");
System.out.println("   *******");
System.out.println("  *********");
System.out.println(" ***********");
System.out.println("*************");
[解决办法]
试试这个思路吧

public static void main(String[] args) throws Exception {
int sum=5;
String s=null;
for(int i=1;i<=sum;i++){
for(int j=1,k=0;j<=2*sum-1;j++){
s=" ";
if(j==sum-i+1+k&&k<2*i-1){
s="*";
k++;
}
System.out.print(s);
}
System.out.println();
}
}

热点排行