Hello, I am taking a Data Structures & Algorithms class in Java this semester an
ID: 3732694 • Letter: H
Question
Hello,
I am taking a Data Structures & Algorithms class in Java this semester and we are currently working on Recursion. I am struggling with understanding it and I have no idea how to do this assignment. If someone could help me with this, that would be great! I have attached the assignment and the code I have so far.
Thank you!
Assignment
1. Write a recursive method printstarPattern () thattakes a nonnegative integer as a parameter and generates the following pattern of stars. If the nonnegative integer is 4, then the pattern generated is: k*a IE Also, write a main method that prompts the user to enter the number of lines in the pattern and uses the recursive method to generate the pattern. For example, specifying the number of lines to be 4 generates the preceding pattern. Read the "Raising a Number to Power" in textbook pp. 303-304. Write a recursive method power() that takes a number and a power (integer) as parameters and calculate the power of the number. For example, if the number is 2 and power is 8, the method will calculate 28 and return 256. Also, write a main method that prompts the user to enter a number and a power and uses the recursive method to calculate the power of the number. 2.Explanation / Answer
ResursiveStar.java
public class ResursiveStar {
public static void main(String[] args) {
System.out.println("Enter the number of lines you want in the pattern");
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
printStarPattern(number/2);
// Calculating 2 raised by power of 8
System.out.println(power(2,8));
scan.close();
}
static void printStarPattern(int number) {
// Returning if number is negative or zero
if(number <= 0) {
return;
} else {
// Printing * number of times
// Starting to print from N to 1
for(int i=0; i<number; i++) {
System.out.print("*");
}
// Printing new line
System.out.println();
// Recursively calling printStarPattern by passing decrementing number by 1
printStarPattern(--number);
}
// After half of the lines are printed
// Starting to print from 1 to N
for(int i=0; i<=number; i++) {
System.out.print("*");
}
// Printing new line
System.out.println();
}
static double power(int number, int power) {
// If power is 1 then returning number
if(power == 1) {
return number;
}
// Recursively calling power
// Returning the result multiplied by number
return power(number, --power)*number;
}
}
OUTPUT:
Enter the number of lines you want in the pattern
20
**********
*********
********
*******
******
*****
****
***
**
*
*
**
***
****
*****
******
*******
********
*********
**********
256.0
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.