如何用JAVA 编写一个递归程序输出如下数字金字塔

1
121
12321
1234321

这个不用递归吧,几个循环搞定了:
for (int i=1; i<=4; i++)
{
for ( int k=1; k<=4-i; k++) System.out.print(" ");//输出前导空格
for ( int j=1; j<=i, j++) System.out.print(""+j);//输出升序数字
for ( int m=i-1; m>=1; m--) System.out.print(""+j);//输出降序数字
System.out.print("\n"); //输出换行符
}追问

要求用递归 作业 没办法

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-12
public static void main(String[] args) {
pain(10);
}

// 一共输出t行
public static void pain(int t) {
for (int i = 1; i <= t; i++) {
paine(i, t);
}
}

// 输出第e行,总行数为t行
public static void paine(int e, int t) {
for (int i = 0; i < t - e; i++) {
System.out.print(" ");
}
for (int i = 1; i <= e; i++) {
System.out.print(i);
}
for (int i = e - 1; i >= 1; i--) {
System.out.print(i);
}
System.out.println();
}
第2个回答  2012-03-12
规律是:
第1行输入3个空格和1
第2行输入2个空格和121
。。。
第i行输入4-i个空格和1到i,再输入i-1到1.
i最大为4
第3个回答  推荐于2016-02-21
public class Test
{
public static void main(String[] args)
{
for(int i=0;i<4;i++)
{
for(int j=i;j<3;j++)
{
System.out.print(" ");
}
for(int j=1;j<=i+1;j++)
{
System.out.print(j);
}
for(int j=i;j>0;j--)
{
System.out.print(j);
}
System.out.println();
}
}
}本回答被提问者采纳
相似回答