Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
11th Edition
ISBN: 9780134670942
Author: Y. Daniel Liang
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
Chapter 18, Problem 18.25PE
Program Plan Intro
String permutation
Program plan:
- Import required packages
- Declare the main class named “Main”.
- Give the main method “public static void main ()”.
- Create an object “sc” for the scanner class.
- Get the string from the user and store it in a variable “str”.
- Print the result by calling the function “displayPermutation ()”.
- Give function definition for the static method “displayPermutation ()”.
- Call the helper method.
- Give function definition for the static helper method “displayPermutation ()”.
- Check if the length of the string is greater than p.
- Loop through the length.
- Call the function recursively.
- Loop through the length.
- Else,
- Print the string.
- Check if the length of the string is greater than p.
- Give the main method “public static void main ()”.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
1. Let product(n,m) be a recursive method that computes the product of two positive integers, using only addition and subtraction. To make this method a recursive one, you are to make a) a base case when m = 1, b) a general case when m ≠ 1. For a general case, the return value should be n plus the result of a recursive call to the method product() with parameters n and m - 1. Write a short Java code for this method, along with a test program.
Complete the following methods:
JAVA
Question 2:
For two integers m and n, their GCD (Greatest Common Divisor) can be computed by a recursive method. Write a recursive method gcd(m,n) to find their Greatest Common Divisor.
Method body:
If m is 0, the method returns n. If n is 0, the method returns m. If neither is 0, the method can recursively calculate the Greatest Common Divisor with two smaller parameters: One is n, the second one is m mod n (or m % n). The recursive method cannot have loops.
Note: although there are other approaches to calculate Greatest Common Divisor, please follow the instructions in this question, otherwise you will not get the credit.
main method:
Prompt and read in two numbers to find the greatest common divisor.
Call the gcd method with the two numbers as its argument. Print the result to the monitor.
Example program run:
Enter m:
12
Enter n:
28
GCD(12,28) = 4
And here is what I have so far,
package CSCI1302;import java.util.*;public class RecursionDemo {
public static void…
Chapter 18 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
Ch. 18.2 - What is a recursive method? What is an infinite...Ch. 18.2 - Prob. 18.2.2CPCh. 18.2 - Show the output of the following programs and...Ch. 18.2 - Prob. 18.2.4CPCh. 18.2 - Prob. 18.2.5CPCh. 18.2 - Write a recursive mathematical definition for...Ch. 18.3 - Prob. 18.3.1CPCh. 18.3 - What is wrong in the following methods?Ch. 18.3 - Prob. 18.3.3CPCh. 18.4 - Describe the characteristics of recursive methods.
Ch. 18.4 - Prob. 18.4.2CPCh. 18.4 - Prob. 18.4.3CPCh. 18.5 - Prob. 18.5.1CPCh. 18.5 - Prob. 18.5.2CPCh. 18.5 - What is a recursive helper method?Ch. 18.6 - Prob. 18.6.1CPCh. 18.6 - How does the program get all files and directories...Ch. 18.6 - How many times will the getSize method be invoked...Ch. 18.6 - Will the program work if the directory is empty...Ch. 18.6 - Will the program work if line 20 is replaced by...Ch. 18.6 - Will the program work if lines 20 and 21 are...Ch. 18.7 - Prob. 18.7.1CPCh. 18.8 - Prob. 18.8.1CPCh. 18.8 - Prob. 18.8.2CPCh. 18.8 - How many times is the displayTriangles method...Ch. 18.8 - Prob. 18.8.4CPCh. 18.8 - Prob. 18.8.5CPCh. 18.9 - Which of the following statements are true? a. Any...Ch. 18.9 - Prob. 18.9.2CPCh. 18.10 - Identify tail-recursive methods in this chapter.Ch. 18.10 - Rewrite the fib method in Listing 18.2 using tail...Ch. 18 - Prob. 18.1PECh. 18 - Prob. 18.2PECh. 18 - (Compute greatest common divisor using recursion)...Ch. 18 - (Sum series) Write a recursive method to compute...Ch. 18 - (Sum series) Write a recursive method to compute...Ch. 18 - (Sum series) Write a recursive method to compute...Ch. 18 - (Fibonacci series) Modify Listing 18.2,...Ch. 18 - Prob. 18.8PECh. 18 - (Print the characters in a string reversely) Write...Ch. 18 - (Occurrences of a specified character in a string)...Ch. 18 - Prob. 18.11PECh. 18 - (Print the characters in a string reversely)...Ch. 18 - (Find the largest number in an array) Write a...Ch. 18 - (Find the number of uppercase letters in a string)...Ch. 18 - Prob. 18.15PECh. 18 - (Find the number of uppercase letters in an array)...Ch. 18 - (Occurrences of a specified character in an array)...Ch. 18 - (Tower of Hanoi) Modify Listing 18.8,...Ch. 18 - Prob. 18.19PECh. 18 - (Display circles) Write a Java program that...Ch. 18 - (Decimal to binary) Write a recursive method that...Ch. 18 - (Decimal to hex) Write a recursive method that...Ch. 18 - (Binary to decimal) Write a recursive method that...Ch. 18 - (Hex to decimal) Write a recursive method that...Ch. 18 - Prob. 18.25PECh. 18 - (Create a maze) Write a program that will find a...Ch. 18 - (Koch snowflake fractal) The text presented the...Ch. 18 - (Nonrecursive directory size) Rewrite Listing...Ch. 18 - (Number of files in a directory) Write a program...Ch. 18 - (Game: Knights Tour) The Knights Tour is an...Ch. 18 - (Game: Knights Tour animation) Write a program for...Ch. 18 - (Game: Eight Queens) The Eight Queens problem is...Ch. 18 - Prob. 18.35PECh. 18 - (Sierpinski triangle) Write a program that lets...Ch. 18 - (Hilbert curve) The Hilbert curve, first described...Ch. 18 - (Recursive tree) Write a program to display a...Ch. 18 - Prob. 18.39PE
Knowledge Booster
Similar questions
- You are given a string of characters. Complete the below recursive method in JAVA or inPython to print the lowercase characters in a reverse manner and also print the count. Scontains the string, i is the starting index and c is the count, which are both initialized to0. [Note for Python Implementation: You are not allowed to use any built-in functionsexcept len(), print(), ord() and chr()]. def printReverse (s, i, c) : #To Do OR public void printReverse (String s, int i, int c) { // To Do } Sample Input Sample Output s = Axy3*8Gw57&Xyu1 count is 4, uwyxarrow_forwardDo not use static variables to implement recursive methods. USING JAVA: // P6 public static int countSubstrings(String s1, String s2) { } Write a recursive method countSubstrings that counts the number of non-overlapping occurrences of a string s2 in a string s1. Use the method indexOf() from String class. As an example, with s1=”abab” and s2=”ab”, countSubstrings returns 2. With s1=”aaabbaa” and s2=”aa”, countSubstrings returns 2. With s1=”aabbaa” and s2=”AA”, countSubStrings returns 0. Show the output on the following strings: s1 = “Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture.…arrow_forwardDemonstrate your understanding of recursion by creating a recursive method of your own. Start with the recursive method outline below: int recurs (__________){ if (__________) return __________; // stopping base case else return __________; // recursive call} Fill in the blanks to create your own original recursive method. Post your method code. Then demonstrate a call to your recursive method that requires the method to call itself at least twice before the stopping case is encountered. For each pass (call) show: The values for the parameters of the call, going forward What values are passed back from the call, going backarrow_forward
- Please solve the following recursion question in Java.arrow_forwardT/F 6. Consider the following recursive sum method:public int sum(int x){if (x == 0) return 0;else return sum(x - 1) + 1;}arrow_forwardChoose the correct one for the following recursive method when n is 3 int recursiveSum(int n) { if (n==0) return 0; return n+recursiveSum(n-1); } a. First and Last recursive call share the same copy of parameter n in memory. b. Every recursive call shares the same copy of parameter n in memory. c. There will be a separate copy of parameter n in memory for each recursive call. d. none of these e. Only First and Last recursive call have separate copies of parameter n in memory.arrow_forward
- Do not use static variables to implement recursive methods. USING JAVA USING: // P4 public static int min(int [] a, int begin, int end) { } Implement a recursive method min that accepts an array and returns the minimum element in the array. The recursive step should divide the array into two halves and find the minimum in each half. Demonstrate the output of min on the array int [] a = { 2, 3, 5, 7, 11, 13, 17, 19, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 23, 29, 31, 37, 41, 43 }arrow_forwardWhich of the following is/are true regarding the characteristics of recursion? a.Every recursive call reduces the original problem, bringing it increasingly closer to a base case until it becomes that case. b.Recursive method requires less memory than an iterative method. c. It is possible to convert every recursive method to an iterative method. d.The method is implemented using an if-else or a switch statement that leads to different cases. e.One or more base cases are used to stop recursion.arrow_forwardhi I am writing a recursive method for the sum of a number, it works but I am unsure how it works and I would like to understand how it works? public static int sumDigits(int num) { if (num == 0) { return (0); } return (num%10) + sumDigits(num/10); }arrow_forward
- Please explain the questions related to the code below: //1. Why is 20 printed 3 times and why does it start with 1, but end with 2? //2. What is the base case for this recursive method and why? //3. How would you implement this using a loop? //4. What is each if statement checking? //5. Would a solution to this using loops require more or less code and would it be more or less effecient? //6. Why is recursion a good choice to solve this problem? //7. How can recursion become infinite? //8. When is recursion appropriate? /* Load the code below into a cloud compiler and run each method one at a time by removing the comments for the method. Walk through the code as a group and explore how the code works. Submit the answers to the numbered questions for credit. */ public class DemoRecur { //Simple statement designed to show control flow in recursion public static void printDemo(int x, int max) {…arrow_forwardJava - How many recursive calls will be made if the following method is called with 6? void greeting(int n) { system.out.println(“Hello!”); greeting(n-1); }arrow_forward- use Eclipse or Netbeans to create a project. - In the new created project, create a recursive method to implement the following formula : a1 = 3 an = 4 an−1 +1, for n ≥ 2 - Use the main method to test the recursive method for various values of n like : for n=1, n=2, n=3, n= 10; - write the same method but in sequential form (not Recursive). And compare between results for the same values of n. using java (data structure )arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education