我试图了解以下代码的输出如何导致:cbaccbacbac通过在main中调用Mys(7)。
public static void Mys(int n){
if(n == 0){
System.out.println("a");
}
else if(n == 1 ){
System.out.println("b");
}
else if(n == 3){
System.out.println("c");
}
else{
Mys(n-1);
Mys(n-2);
}
}
有人可以解释整个递归流程如何在这里工作。我有点困惑。
由于
答案 0 :(得分:0)
我希望您打算Mys(n-1)
的来电自动拨打Mys(n-2)
,从而为相同号码提供多个输出。
如果n=6
,它将
Mys(5)
,致电Mys(4)
和Mys(3)
Mys(4)
,即Mys(3)
和Mys(2)
Mys(2)
然后会致电Mys(1)
和Mys(0)
答案 1 :(得分:0)
如果您致电Mys(7)
,您将获得指定的输出。
以下是它的工作原理:
Mys(0)
始终打印" a"。Mys(1)
始终打印" b"。Mys(2)
始终致电Mys(1)
然后Mys(0)
,因此始终打印" ba"。Mys(3)
始终打印" c"。Mys(4)
始终致电Mys(3)
然后Mys(2)
,因此始终打印" cba"。Mys(5)
始终致电Mys(4)
然后Mys(3)
,因此始终打印" cbac"。Mys(6)
始终致电Mys(5)
然后Mys(4)
,因此始终打印" cbaccba"。Mys(7)
始终致电Mys(6)
然后Mys(5)
,因此始终打印" cbaccbacbac"。