Problem Solving with C++ (10th Edition)
10th Edition
ISBN: 9780134521176
Author: SAVITCH
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
Chapter 14, Problem 5PP
Program Plan Intro
Towers of Hanoi
Program plan:
- Include required header file.
- Declare the function for tower of Hanoi.
- Define main function.
- Declare variable for “n”.
- Initializes three post names in “char” data type.
- Create prompt statement for disks.
- Read the number of disks from user.
- Call the function “towersOfHanoi” with four parameters “n”, “post1”, “post2” and “post3”.
- Define “towersOfHanoi” function
- If the total count is equal to “1”, then display the movement of disk from given source post to destination post.
- Otherwise, recursively call the function “towersOfHanoi” with corresponding arguments.
Expert Solution & Answer
Trending nowThis is a popular solution!
Students have asked these similar questions
Towers of Hanoi.
There is a story about Buddhist monks who are playing this puzzle with
64 stone disks. The story claims that when the monks finish moving the disks from one
post to a second via the third post, time will end. Eschatology (concerns about the end of
time) and theology will be left to those better qualified; our interest is limited to the recur-
sive solution to the problem.
A stack of n disks of decreasing size is placed on one of three posts. The task is to move the
disks one at a time from the first post to the second. To do this, any disk can be moved
from any post to any other post, subject to the rule that you can never place a larger disk
over a smaller disk. The (spare) third post is provided to make the solution possible. Your
task is using c++ write a recursive function that describes instructions for a solution to this problem. We don’t have graphics available, so you should output a sequence of instructions
that will solve the problem.
Hint:
If you could…
Python Please. An interesting puzzler for chess buffs is the Knight’s Tour problem, originally proposed by the mathematician Euler. Can the knight piece move around an empty chessboard and touch each of the 64 squares once and only once? We study this intriguing problem in depth here. The knight makes only L-shaped moves (two spaces in one direction and one space in a perpendicular direction). Thus, as shown in the figure below, from a square near the middle of an empty chessboard, the knight (labeled K) can make eight different moves (numbered 0 through 7). A: Draw an eight-by-eight chessboard on a sheet of paper, and attempt a Knight’s Tour by hand. Put a 1 in the starting square, a 2 in the second square, a 3 in the third, and so on. Before starting the tour, estimate how far you think you’ll get, remembering that a full tour consists of 64 moves. How far did you get? Was this close to your estimate? B: Now let’s develop a script that will move the knight around a chessboard…
Use a stack to reverse the words of a sentence. Keep reading words until you have a word that ends in a period, adding them onto a stack. When you have a word with a period, pop the words off and print them. Stop when there are no more words in the input. For example, you should turn the inputMary had a little lamb. Its fleece was white as snow.intoLamb little a had mary. Snow as white was fleece its.Pay attention to capitalization and the placement of the period.
This is what I have so far:
import java.util.Scanner;import java.util.Stack;
/** Class for reversing the order of a sentence.*/public class SentenceReverser{ /** Reverses the given sentence. @param sentence Sentence to be reversed. @return Reversed sentence. */ public static String reverse(String sentence) { String reversed = ""; Scanner scanner = new Scanner(sentence); Stack<String> stack = new Stack<String>();
// put your work below // ... return…
Chapter 14 Solutions
Problem Solving with C++ (10th Edition)
Ch. 14.1 - Prob. 1STECh. 14.1 - Prob. 2STECh. 14.1 - Prob. 3STECh. 14.1 - Prob. 4STECh. 14.1 - Prob. 5STECh. 14.1 - If your program produces an error message that...Ch. 14.1 - Write an iterative version of the function cheers...Ch. 14.1 - Write an iterative version of the function defined...Ch. 14.1 - Prob. 9STECh. 14.1 - Trace the recursive solution you made to Self-Test...
Ch. 14.1 - Trace the recursive solution you made to Self-Test...Ch. 14.2 - What is the output of the following program?...Ch. 14.2 - Prob. 13STECh. 14.2 - Redefine the function power so that it also works...Ch. 14.3 - Prob. 15STECh. 14.3 - Write an iterative version of the one-argument...Ch. 14 - Prob. 1PCh. 14 - Prob. 2PCh. 14 - Write a recursive version of the search function...Ch. 14 - Prob. 4PCh. 14 - Prob. 5PCh. 14 - The formula for computing the number of ways of...Ch. 14 - Write a recursive function that has an argument...Ch. 14 - Prob. 3PPCh. 14 - Prob. 4PPCh. 14 - Prob. 5PPCh. 14 - The game of Jump It consists of a board with n...Ch. 14 - Prob. 7PPCh. 14 - Prob. 8PP
Knowledge Booster
Similar questions
- The puzzle includes various sizes of coins. It starts with an order of size, taking the top one the least. The puzzle needs to be constructed to have a conical shape and consider these laws: In every step, you can push one coin; every move includes taking the upper coin from the stack and putting it on top of other stack or starting a new stack. None of the coins can be put on top of the smaller coin; finally, at any moment, at most L, various stacks can be in use. Make PDDL in a way it will not rely on A and L.arrow_forwardWhat is the distinction between these two algorithms? 1-You are given a stack of ten cards, each containing one number. Make a suggestion for an algorithm for calculating the average of the numbers on the cards. You are only allowed to look at one card at a time. 2- You are handed a stack of an unknown number of cards, each containing a single number. Make a suggestion for an algorithm for calculating the average of the numbers on the cards. You are only allowed to look at one card at a time.arrow_forwardA group of students writes their names and unique student ID numbers on sheets of paper. The sheets are then randomly placed in a stack. Their teacher is looking to see if a specific ID number is included in the stack. Which of the following best describes whether their teacher should use a linear or a binary search? a. The teacher could use either type of search though the binary search is likely to be faster b. The teacher could use either type of search though the linear search is likely to be faster c. Neither type of search will work since the data is numeric d. Only the linear search will work since the data has not been sortedarrow_forward
- In Java In the real world, you will often be tasked with understanding and improving another person’sinelegant, hard-to-understand code. This project provides practice for that type of work.The given program, shown below, implements a circular-array queue. A queue is a British term for aline of people waiting to be served. A queue can also refer to any line of items where the item at thefront of the queue is served next, and new items are added at the rear of the queue. Informationtransmission systems, like the Internet, have lots of queues, where messages in transit are temporarilystalled at some intermediate system node, waiting to get into the next available time slot on the next legof their journey. A queue’s length is the total number of people or items currently waiting. When thenext item is served, that shortens the queue by one. When another person arrives, that lengthens thequeue by one. A queue’s capacity is the maximum number of items that can fit in the line at one time.If…arrow_forwardChildren often play a memory game in which a deck of cards containing matching pairs is used.The cards are shuffled and placed face down on a table. The players then take turns and selecttwo cards at a time. If both cards match, they are left face up; otherwise, the cards are placed facedown at the same positions. Once the players see the selected pair of cards and if the cards do notmatch, then they can memorize the cards and use their memory to select the next pair of cards.The game continues until all the cards are face up. Write a program to play the memory game.Use a two-dimensional array of 4 rows and 4 columns for a deck of 16 cards with 8 matchingpairs. You can use numbers 1 to 8 to mark the cards. Use random number generators to randomlystore the pairs in the array. Use appropriate functions (see below) in your program, and themain program should be merely a call to functions.Your program should consist of at least the following functions:a. A function to fill the board…arrow_forwardIn this lab the task is to write a program that maintains a personal phone book. The program allows to: ▪ Add and Delete entries from the phone book, ▪ Search the phone book for a specific entry by last name or by phone number, and ▪ Print out the entire entries in the phone book. The data in the phone book is maintained by storing in memory with the use of a singly linked list, with one list node per entry. Each node contains members for storing a person’s family name, first name, address, and the phone number. Use strings to store this information. The linked list must be kept in increasing alphabetical order, sorted by family name. There are no duplicate entries with the same family name allowed in the phone book. This program should be menu driven, with the user being offered a choice of the following commands described below: ▪ Insert a new entry into the phone book. The program should prompt the user for a new family name and first name, an address and a phone number. This…arrow_forward
- You have a stack of n boxes, with widths w1, heights hi, and depths di. The boxescannot be rotated and can only be stacked on top of one another if each box in the stack is strictlylarger than the box above it in width, height, and depth. Implement a method to compute theheight of the tallest possible stack. The height of a stack is the sum of the heights of each box.arrow_forwardDraw a stack: We start with an empty stack and then execute the following commands: push 4 push 7 pop push 5 push 5 push 8 push 7 push 8 pop pop pop push 7 push 6 pop pop push 8arrow_forwardDraw a memory map for the code you see on the next page, until the execution reaches the point indicated by the comment /* HERE */.In your diagram:• You must have a stack, heap, and static memory sections • Identify each frame as illustrated by the previous examples.• Draw your variables as they are encountered during program execution. Code: public class Passenger {private String name;private int ticketCost;private StringBuffer luggage;private static final int LUGGAGE_COST = 20;public Passenger(String name, int ticketCost) {this.name = name;this.ticketCost = ticketCost;luggage = new StringBuffer();}public Passenger addLuggage(String desc) {ticketCost += LUGGAGE_COST;luggage.append(desc);return this;}public int getTicketCost() {return ticketCost;}public Passenger reduceCost(int by) {ticketCost -= by;/* HERE */return this;}public String toString() {return "Passenger [name=" + name + ", ticketCost=" + ticketCost + ", luggage=" + luggage + "]";}}public class Driver {public static void…arrow_forward
- Show a complete run of Quicksort on the following array X :X: 1 2 3 4 5 6 7 8 9 1017 5 -3 40 46 50 16 0 22 4 show all recursive calls using the stack below. Show the results of each call to below Split on a newline in the table to the left.arrow_forwardA popular word game involves finding words from a grid of randomly generatedletters. Words must be at least three letters long and formed from adjoining letters.Letters may not be reused and it is valid to move across diagonals. As an example,consider the following 4 * 4 grid of letters: A B C DE F G HI J K LM N O P The word “FAB” is valid (letters in the upper left corner) and the word “KNIFE”is valid. The word “BABE” is not valid because the “B” may not be reused. Theword “MINE” is not valid because the “E” is not adjacent to the “N”. Write a program that uses a 4 * 4 two-dimensional array to represent the gameboard. The program should randomly select letters for the board. You may wishto select vowels with a higher probability than consonants. You may also wish toalways place a “U” next to a “Q” or to treat “QU” as a single letter. The programshould read the words from the text file words.txt (included on the website withthis book) and then use a recursive algorithm to…arrow_forwardThe school cafeteria offers circular and square sandwiches at lunch break, referred to by numbers 0 and 1 respectively. All students stand in a queue. Each student either prefers square or circular sandwiches. The number of sandwiches in the cafeteria is equal to the number of students. You are given two integer arrays students and sandwiches where sandwiches[i] is the type of the ith sandwich in the stack (i = 0 is the top of the stack) and students[j] is the preference of the jth student in the initial queue (j = 0 is the front of the queue). Part 1: Modify the code given and make it more efficient. You can try to implement your own stack or your own Queue. Or you can use the sandwiches array as a stack without making a separate Stack class. Same with the students array. Part 2: After modifying the code, explain how it works, and why it is more efficient than the solution that you started with. (Or, if it turns out that the change you made is not more efficient, try to…arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning