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

请教一下这个三角形的右边部分是怎么实现的
public class Tower2
{
    final static int M=9;
    static void count(int n,int k)         //递归方法,输出一行
    {
        int i;
        if (n==1)                          //在1前留空
           for (i=1; i<=M-k; i++) 
               System.out.print("   ");
        System.out.print("  "+n);
        if (n<k)  
        {
            count(n+1,k);
            System.out.print("  "+n);
        }
    }  
    
    public static void main(String args[])
    {
        int i;
        for (i=1; i<=M; i++) 
        {
           count(1,i);
           System.out.println();
        }
    }
}
/*
                          1
                       1  2  1
                    1  2  3  2  1
                 1  2  3  4  3  2  1
              1  2  3  4  5  4  3  2  1
           1  2  3  4  5  6  5  4  3  2  1
        1  2  3  4  5  6  7  6  5  4  3  2  1
     1  2  3  4  5  6  7  8  7  6  5  4  3  2  1
  1  2  3  4  5  6  7  8  9  8  7  6  5  4  3  2  1

 
 */


------解决方案--------------------
一步步的debug你就知道是怎么回事了。
关键是if (n<k)里的这一句
System.out.print("  "+n);