我的代码应该用3调用时打印下面的输出,但是每次运行它时它都会打印2行null。递归问题
---
*--
**-
***
每当我尝试改变某些东西时,它会在运行时出现堆栈溢出错误。我知道如何修复这个输出,但不能递归。我们不允许使用任何循环,这是我遇到问题的地方。任何帮助将非常感激。
public void printPattern(int n) {
if(n>0){
System.out.println(printPatternStripes(n));
printPatternStripes(n-1);
System.out.println(printPatternStars(n));
printPatternStars(n+1);
}
}
private String printPatternStars(int stars){
if(stars==0){
return printPatternStars(stars+1) + "*";
}
else{
return null;
}}
private String printPatternStripes(int stripes){
if(stripes!=0){
return printPatternStripes(stripes-1)+ "_";
}
else{
return null;
}}
如果(!星星= 0)返回空值,如果(条纹!= 0)你返回null。这造成了很多问题。 –
必须是[同学](http://stackoverflow.com/q/43434546/2970947)。 –
它应该以下划线开头并用*一行替换它,直到它碰到基本情况 –