public class test {  public void pyramid(int curRow,int maxRow) {
    if (curRow == maxRow ) return;
    int count = 0;
    int num = 0;
    do {
      if (count == 0)
        for (int i = 0; i < maxRow - curRow; i++)
          System.out.print(" ");      if (count <= curRow)
         System.out.print(++num);
      else
           System.out.print(--num);
      count ++;
    } while (count < 2*curRow+1);
    System.out.println();
    pyramid(++curRow,maxRow);
  }  public static void main(String[] args) {
      test aa = new test();
      aa.pyramid(0,5);
  }}
//5行

解决方案 »

  1.   

    public class Test { public static void main(String[] args) {
    for (int i = 1; i < 10; i++) {
    for (int j = 1; j < 20; j++) {
    if (j < 10 && i - (10 - j) > 0) {
    System.out.print(i - (10 - j));
    } else if (j == 10) {
    System.out.print(i);
    } else if (j > 10 && i - (j - 10) > 0) {
    System.out.print(i - (j - 10));
    } else {
    System.out.print(" ");
    } }
    System.out.println();
    }
    }
    }打10行的
      

  2.   

    楼主 你发个帖子 然后别人给你回复 你有bs这个 bs那个的 是不是心理有问题啊
    你给我发下面这样的短消息 能说明你什么啊  
    ------------------------------------------------
    编号: 8 发送者 SuperJavaer 发送时间 2004-11-1 11:24:12 删除  回复  
    内容 BS 
    -------------------------------------------------
    劝楼主一句 不要在这瞎bs 回家先跟妈妈学好b怎么写再过来
    楼主要么是小p孩  要么就是找工作找不着来这发泄来了 鉴定完毕
      

  3.   

    非递归:public class test {  public void pyramid(int curRow,int maxRow) {
        int count = 0;
        int num = 0;
        do {
          if (count == 0)
            for (int i = 0; i < maxRow - curRow; i++)
              System.out.print(" ");      if (count <= curRow)
             System.out.print(++num);
          else
               System.out.print(--num);
          count ++;
        } while (count < 2*curRow+1);
        System.out.println();
      }
      public static void main(String[] args) {
          test aa = new test();
          for (int i = 0; i < 5;i ++)
             aa.pyramid(i,5);
      }}
      

  4.   

    class Print{
    int prints;
    Print(int prints){
    this.prints=prints;
    }
    public void printNo(){
    for (int i = 1; i <prints; i++) {
    for (int j = 1; j <2*prints; j++) {
    if (j < prints&& i - (prints - j) > 0) {
    System.out.print(i - (prints - j));
    } else if (j == prints) {
    System.out.print(i);
    } else if (j > prints && i - (j - prints) > 0) {
    System.out.print(i - (j - prints));
    } else {
    System.out.print(" ");
    } }
    System.out.println();
    }
    }
    }
    public class Test{
    public static void main(String[] args){
    Print p=new Print(10);
    p.printNo();
    }
    }
      

  5.   

    public class 数字金字塔 { public static void main(String[] args) {
    int row=10;
    for(int i=1;i<=row;i++){
    System.out.print(getSpace(row-i));
    System.out.print(getLeftNumber(i));
    System.out.print(getRightNumber(i));
    System.out.println();
    }
    }
    private static String getSpace(int number){
    StringBuffer buffer=new StringBuffer();
    for(int i=1;i<=number;i++){
    buffer.append(" ");
    }
    return buffer.toString();
    }
    private static String getLeftNumber(int number){
    StringBuffer buffer=new StringBuffer();
    for(int i=1;i<=number;i++){
    buffer.append(i);
    }
    return buffer.toString();
    }
    private static String getRightNumber(int number){
    StringBuffer buffer=new StringBuffer();
    for(int i=number-1;i>=1;i--){
    buffer.append(i);
    }
    return buffer.toString();
    }
    }
      

  6.   

    public class T
    {
    public static void main(String[] args)
    {
    mm(10);
    }
    //int x 表示塔的高度
    public static void mm(int x)
    {
    for(int nHight = 1;nHight<=x;nHight++)
    {
    for(int i=nHight-x;i<nHight;i++)
    print(i);
    for(int i=nHight;i>0;i--)
    print(i);
    System.out.println("");
    }
    }

    public static void print(int i)
    {
    if(i < 1)
    System.out.print(" ");
    else
    System.out.print(i);
    }
    }
      

  7.   

    这个有意思,俺写一个不用递归的:
    <<
    public class Pyramid {
        private final int height;
        private final List<String> pyramid;    public Pyramid(int height) {
            if (height <= 0 || height >= 10) {
                throw new IllegalArgumentException();
            }
            this.height = height;
            this.pyramid = initializePyramid();
        }    public void display() {
            for (String line : pyramid) {
                System.out.println(line);
            }
        }    private List<String> initializePyramid() {
            final List<String> result = new ArrayList<String>();
            for (int i = 1; i <= height; i++) {
                StringBuffer line = initializeLine(i);
                for (int c = 1; c < i; c++) {
                    line.append(c);
                }
                for (int c = i; c >= 1; c--) {
                    line.append(c);
                }
                result.add(line.toString());
            }
            return result;
        }    private StringBuffer initializeLine(int currentLine) {
            StringBuffer result = new StringBuffer();
            for (int i = 0; i < height - currentLine; i++) {
                result.append(' ');
            }
            return result;
        }    public static void main(String[] args) {
            new Pyramid(9).display();
        }
    }
    >>
      

  8.   

    写完才看到,和shangqiao(伤桥) 写得是差不多的。。@@
      

  9.   

    public class Test { public static void main(String[] args) {
    System.out.print("1");
    System.out.print("121");
    System.out.print("12321");
    System.out.print("1234321");
    System.out.print("123454321");
    System.out.print("12345654321");
    System.out.print("1234567654321");
    System.out.print("123456787654321");
    System.out.print("12345678987654321");
    }
    }
      

  10.   

    zedk928() :简单直接!!!!!!!
    呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵!!!!!!!!!!!
      

  11.   

    看这个简单搞定:》》》》》》》》》》》》》
    public class NumericalPyramid {
    public static void pyramid(int num) {
    int cols = 2 * num - 1;//列数
    for (int i = 1; i <= num; i++) {
    for (int j = 1; j <= cols; j++) {
    if (abs(j - num) >= i)
    System.out.print(" ");
    else {
    System.out.print(i + notabs(j - num));
    }
    }
    System.out.println();
    }
    }
    //return int >=0;
    static int abs(int a) {
    return a >= 0 ? a : -a;
    }

    //return int <=0 
    static int notabs(int a) {
    return a <= 0 ? a : -a;
    }

    public static void main(String[] args) {
    pyramid(10);
    }
    }
      

  12.   

    楼上高手如云,谢了。学习...
    除了一个zedk928要BS一下(我的理解是扁死)
    史吹真悟我再说声对不起,别小题大做了。
      

  13.   

    Class ThreeDay {
    public static void display(int loop) { int width = loop * 2 - 1;  for (int i = 1; i <= loop; i++) {
    for (int j = 1; j <= (width - (2 * i - 1)) / 2 ; j++) {
    System.out.print(" ");
    }
    for (int j = 1; j <= i; j++) {
    System.out.print(j);
    }
    for (int j = i - 1; j > 0; j--) {
    System.out.print(j); 
    }
    System.out.println("");
    } }
    public static void main(String[] args) {
    display(10);
    }
    |
      

  14.   

    其实我觉得 zedk928() ( )  最简单  哈 哈  狂晕ing~~
      

  15.   

    public class Test {public static void main(String[] args)
    {
        System.out.println("1
                           121
                          12345
                         1234567"); 
    }
      

  16.   

    public class DNA{

    public static void main(String[] args){
    DNA d = new DNA();
    int h = 5;
    for(int i = 1;i <= h;i++){
    for(int j = i;j < h;j++){
    System.out.print(" ");
    }
    System.out.println (d.crts(i));
    }
    }

    public String crts(int i){
    String rs = "";
    if(i>0){
    for(int j = 1;j <= (2*i-1);j++){
    if(j<i)rs += j;
    else rs +=(2*i-j);
    }
    }
    return rs;
    }
      

  17.   

    别看问题简单,很容易考验人的水平。个人觉得 shangqiao(伤桥) 的不错,让人一眼就能看的懂算法,应该不是一个新手能写出来的。我觉得伤桥的getRightNumber 可以用getLeftNumber(n).reverse().substring(1)代替。
      

  18.   

    <<大家写代码都不写注释?这个习惯要改改。>>每个代码都这么短,从方法变量命令就可以一目了然了,还写什么注释。。
      

  19.   

    支持楼主
    public class MyJinzita
    {
    public static void pyramid(int floor){
    for(int i=1;i<=floor;i++){
    //输出空格
    for(int j=0;j<floor-i;j++)
    System.out.print(" ");
    //输出升序数字
    for(int j=1;j<=i;j++){
    System.out.print(j);
    }
    //输出将序数字
    for(int j=i-1;j>=1;j--){
    System.out.print(j);
    }
    //输出回车符合
    System.out.println();
    }
    }
    public static void main(String[] args) 
    {
    if(args==null || args.length ==0 )
    {
    System.out.println("请输入金字塔层数!");
    return;
    }
    try{
    int floor = Integer.parseInt(args[0]);
    pyramid(floor);
    }catch(Exception ex){
    System.out.println("请输入金字塔层数数字!");
    return;
    }
    }
    }
      

  20.   

    个人最喜欢zedk928() 的起码说来,超额完成打印4行的任务:)而且代码最短,最有效不是吗?呵呵,,,公司要找程序员第一个推荐他
      

  21.   

    public class b
    {
    public static void main(String[] args)
    {
      test demo = new test(7);
      demo.testFull();
    }
    }class test
    {
    private int rows;
    public test(int k)
    {
          rows=k;
        }
    public int getRows()
    {
       return rows;
    }
    public void testFull(){
    for (int i=1; i<=rows;i++){
    if (i>1)
    {
    System.out.println("");
    }
    for (int j=1;j<=(rows*2-1)-(i*2-1)/2;j++){
       System.out.print(" ");
       }
       for (int k=1;k<=i;k++){
       System.out.print(k);
       }
       if (i>1){
       for (int m=(i-1);m>=1;m--){
       System.out.print(m);
       }
       }
        }
    }
    }