对于以下递归函数,调用f(2, '1', '2', '3')的输出结果是( )。 void f(int n, char a, char b, char c) { if (n == 1){ printf("%c->%c#", a, b) ; }else{ f(n-1, a, c, b); printf("%c->%c#", a, b); f(n-1, c, b, a); } }
时间: 2023-12-20 14:04:29 浏览: 246
C语言函数的嵌套调用和递归调用PPT课件.pptx
调用f(2, '1', '2', '3')的输出结果是:"1->3#1->2#3->2#".
函数f是一个递归函数,当n=1时,输出a->b#。当n>1时,先递归调用f(n-1, a, c, b),将n-1个盘子从a移到c;然后输出a->b#,即将第n个盘子从a移到b;最后递归调用f(n-1, c, b, a),将n-1个盘子从c移到b。所以调用f(2, '1', '2', '3')时,过程如下:
1. 调用f(1, '1', '3', '2'),输出"1->3#"
2. 输出"1->2#"
3. 调用f(1, '3', '2', '1'),输出"3->2#"
所以最终输出结果为:"1->3#1->2#3->2#".
阅读全文