#include void towerOfHanoi(int n, char init, char final, char temp){ if (n==1) { printf( "%c -> %c\n" , init, final); return; towerOfHanoi (n-1, init, temp, final); printf("%c -> %c\n" towerOfHanoi (n-1, temp, final, init); init, final); -5 26 27 } 28 int main(){ 29 int n=3; // Number of disks towerOfHanoi(n, '1', '3', '2'); // A,B and C are names of rods 30 31 32 33 return e; 34 }

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Write comments in the below code explaining each line.
14
15 #include <stdio.h>
16
17 void towerOfHanoi(int n, char init, char final, char temp){
18
19
if (n==1) {
printf( "%c -> %c\n"
return;
}
towerOfHanoi (n-1, init, temp, final);
printf("%c -> %c\n"
towerOfHanoi (n-1, temp, final, init);
20
init, final);
21
22
23
24 :
init, final);
25
26
27 }
28
int main(){
29
int n=3; // Number of disks
towerOfHanoi(n, '1', '3', '2'); // A,B and C are names of rods
30
31
32
33
return e;
34 }
35
Transcribed Image Text:14 15 #include <stdio.h> 16 17 void towerOfHanoi(int n, char init, char final, char temp){ 18 19 if (n==1) { printf( "%c -> %c\n" return; } towerOfHanoi (n-1, init, temp, final); printf("%c -> %c\n" towerOfHanoi (n-1, temp, final, init); 20 init, final); 21 22 23 24 : init, final); 25 26 27 } 28 int main(){ 29 int n=3; // Number of disks towerOfHanoi(n, '1', '3', '2'); // A,B and C are names of rods 30 31 32 33 return e; 34 } 35
(Towers of Hanoi)
Every budding computer scientist must grapple with certain classic problems, and the Towers of Hanoi is
one of the most famous of these. Legend has it that in a temple in the Far East, priests are attempting to
move a stack of disks from one peg to another. The initial stack had 64 disks threaded onto one peg and
arranged from bottom to top by decreasing size. The priests are attempting to move the stack from this
peg to a second peg under the constraints that exactly one disk is moved at a time, and at no time may a
larger disk be placed above a smaller disk. A third peg is available for temporarily holding the disks.
Supposedly the world will end when the priests complete their task, so there is little incentive for us to
facilitate their efforts. I recommend you try this website before you start programming
https://www.mathsisfun.com/games/towerofhanoi.html. This will give you an idea of what the problem
is and how to solve it.
Let's assume that the priests are attempting to move the disks from peg 1 to peg 3. We wish to develop
an algorithm that will print the precise sequence of disk-to-disk peg transfers. If we were to approach
this problem with conventional methods, we'd rapidly find ourselves hopelessly knotted up in managing
the disks. Instead, if we attack the problem with recursion in mind, it immediately becomes tractable.
Moving n disks can be viewed in terms of moving only n – 1 disks (and hence the recursion) as follows:
a) Move n- 1 disks from peg 1 to peg 2, using peg 3 as a temporary holding area.
b) Move the last disk (the largest) from peg 1 to peg 3.
c) Move the n- 1 disks from peg 2 to peg 3, using peg 1 as a temporary holding area.
The process ends when the last task involves moving n = 1 disk, i.e., the base case. This is accomplished
by trivially moving the disk without the need for a temporary holding area. Write a program to solve the
Towers of Hanoi problem. Use a recursive function with four parameters:
a) The number of disks to be moved
b) The peg on which these disks are initially threaded
c) The peg to which this stack of disks is to be moved
d) The peg to be used as a temporary holding area
Your program should print the precise instructions it will take to move the disks from the starting peg to
the destination peg. For example, to move a stack of three disks from peg 1 to peg 3, your program
should print the following series of moves:
From
То
1
3
1
3
1
1
3
1
3
1 1 1 1 ↑ 1 1
Transcribed Image Text:(Towers of Hanoi) Every budding computer scientist must grapple with certain classic problems, and the Towers of Hanoi is one of the most famous of these. Legend has it that in a temple in the Far East, priests are attempting to move a stack of disks from one peg to another. The initial stack had 64 disks threaded onto one peg and arranged from bottom to top by decreasing size. The priests are attempting to move the stack from this peg to a second peg under the constraints that exactly one disk is moved at a time, and at no time may a larger disk be placed above a smaller disk. A third peg is available for temporarily holding the disks. Supposedly the world will end when the priests complete their task, so there is little incentive for us to facilitate their efforts. I recommend you try this website before you start programming https://www.mathsisfun.com/games/towerofhanoi.html. This will give you an idea of what the problem is and how to solve it. Let's assume that the priests are attempting to move the disks from peg 1 to peg 3. We wish to develop an algorithm that will print the precise sequence of disk-to-disk peg transfers. If we were to approach this problem with conventional methods, we'd rapidly find ourselves hopelessly knotted up in managing the disks. Instead, if we attack the problem with recursion in mind, it immediately becomes tractable. Moving n disks can be viewed in terms of moving only n – 1 disks (and hence the recursion) as follows: a) Move n- 1 disks from peg 1 to peg 2, using peg 3 as a temporary holding area. b) Move the last disk (the largest) from peg 1 to peg 3. c) Move the n- 1 disks from peg 2 to peg 3, using peg 1 as a temporary holding area. The process ends when the last task involves moving n = 1 disk, i.e., the base case. This is accomplished by trivially moving the disk without the need for a temporary holding area. Write a program to solve the Towers of Hanoi problem. Use a recursive function with four parameters: a) The number of disks to be moved b) The peg on which these disks are initially threaded c) The peg to which this stack of disks is to be moved d) The peg to be used as a temporary holding area Your program should print the precise instructions it will take to move the disks from the starting peg to the destination peg. For example, to move a stack of three disks from peg 1 to peg 3, your program should print the following series of moves: From То 1 3 1 3 1 1 3 1 3 1 1 1 1 ↑ 1 1
Expert Solution
steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY