此递归方法接受一个非负整数(在这种情况下为6),并根据该整数打印以下模式:
最佳答案
简单:
打印第一行,递归,打印最后一行。
这里的递归模式是中间部分与您使用a-1
的功能相同。
public static void printPattern(int a){
if (a != 0) {
for(int i = 0; i < a; i++){
System.out.print("*");
}
System.out.println();
printPattern(a-1);
for(int i = 0; i < a; i++){
System.out.print("*");
}
System.out.println();
}
}
那么,你如何得到这个呢?查看
printPattern(2)
的输出:**
*
*
**
对于
printPattern(3)
***
**
*
*
**
***
如您所见,
printPattern(3)
的输出包含printPattern(2)
的输出。所以我们的函数应该只输出不在
printPattern(2)
中的部分:*
a
次。致电
printPattern(a-1)
并再次
*
a
次。现在,只有一部分缺失:中止条件
当我们查看
a = 0
的输出时,该函数的行为有所不同。它不打印任何内容。
这就是我们的中止条件。