日期:2014-05-20  浏览次数:20963 次

在屏幕上用*输出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)。

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

------解决方案--------------------
System.out.println(" *");
System.out.println(" ***");
System.out.println(" *****");
System.out.println(" *******");
System.out.println(" *********");
System.out.println(" ***********");
System.out.println("*************");
------解决方案--------------------
试试这个思路吧
Java code

    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();
        }
    }