Hannoi塔问题如下图所示。现要求将塔座A上的所有圆盘移动塔座B上,并仍按同样顺序叠置。移动圆盘时遵守Hannoi塔问题的移动法则。由此设计出解Hanoi塔问题的递归算法正确的为()。
A: A voidhanoi(intn,intA,intC,intB){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
B: B voidhanoi(intn,intA,intB,intC){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
C: C voidhanoi(intn,intC,intB,intA){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
D: D voidhanoi(intn,intC,intA,intB){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
A: A voidhanoi(intn,intA,intC,intB){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
B: B voidhanoi(intn,intA,intB,intC){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
C: C voidhanoi(intn,intC,intB,intA){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
D: D voidhanoi(intn,intC,intA,intB){ if(n>0){ hanoi(n-1,A,C,B);move(n,A,B);hanoi(n-1,C,B,A);}}
B
举一反三
- 代码填空【汉诺塔问题(a柱为原始柱,b柱为辅助柱,c柱为目标柱)】:void hanoi(int n, char a, char b, char c) { if (n > 0) { _________(1)__________; move(n,a,c); //将n号圆盘从a柱移至c柱 _________(2)_____________; }} A: (1) hanoi(n-1, b, a, c)(2) hanoi(n-1, a, c, b) B: (1) hanoi(n-1, a, b, c)(2) hanoi(n-1, b, c, a) C: (1) hanoi(n-1, b, c, a)(2) hanoi(n-1, a, b, c) D: (1) hanoi(n-1, a, c, b)(2) hanoi(n-1, b, a, c)
- 补全代码解决汉诺塔问题。 def hanoi(n,A,B,C): if (1): print('move',n,'from',A,'to',C) else: hanoi((2),A,C,B) hanoi(1,A,B,C) hanoi((3),(4),(5),(6)) n=int(input('输入盘子数:')) if n: hanoi(n,'A','B','C')
- 汉诺塔(hanoi塔)问题可以描述为以下递归形式 hanoi(n个盘子, A→B,缓冲柱为C) { if (n==1) 直接从A移到B else { hanoi(n-1个盘子, A→C, 缓冲柱为B) 移动n号盘子:A→B hanoi(n-1个盘子, C→B, 缓冲柱为A) } } 9bd153b5af31717f1112b419266aaa8c.jpg
- 如果定义解决汉诺塔问题的函数:hanoi::Int-Int-Int-Int-[(Int,Int,Int)] hanoinstartmidend=...hanoi n start mid end 表示将n(第一个参数)个盘子从start(第二个参数)移到end(第四个参数)上,mid(第三个参数)是辅助柱子,那么在定义中如何表示将n-1个盘子从mid移到end上,start作为辅助柱子? A: hanoi n-1 mid end start B: hanoi (n-1) mid start end C: hanoi (n-1) start end mid D: hanoi (n-1) mid end start
- 代码填空【汉诺塔问题(a柱为原始柱,b柱为辅助柱,c柱为目标柱)】: void hanoi(int n, char a, char b, char c) { if (n > 0) { _________(1)__________; move(n,a,c); //将n号圆盘从a柱移至c柱 _________(2)_____________; } }
内容
- 0
递归模型为f(1)=1,f(n)=f(n-1)+n (n>1),其中递归体是 。 A: (1)=0 B: f(0)=1 C: f(n)=f(n-1)+n D: f(n)=n
- 1
递归函数f(n)=f(n-1)+n(n>1)的递归体是()。 A: f(1)=0 B: f(0)=1 C: f(n)=f(n-1) D: f(n)=n
- 2
递归模型如下: f(1)=1,n>1时f(n)=f(n-1)+n 其中递归体是( )。 A: f(1)=0 B: f(0)=1 C: f(n)=f(n-1)+n D: f(n)=n
- 3
递归函数f(1)=1,f(n)=f(n-1)+n(n>;1)的递归体是____________。 A: f(1)=1 B: F(0)=0 C: F D: F(n)=f(n-1)+n E: F(n)=n
- 4
11. 设函数$f(x)=({{\text{e}}^{x}}-1)({{\text{e}}^{2x}}-2)\cdots ({{\text{e}}^{nx}}-n)$,其中$n$为正整数,则${f}'(0)=$( )。 A: ${{(-1)}^{n-1}}(n-1)!$ B: ${{(-1)}^{n}}(n-1)!$ C: ${{(-1)}^{n-1}}n!$ D: ${{(-1)}^{n}}n!$