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