AP Computer Science Exam Question:
Write a recursive function printNumbers in Java that takes an integer n and prints all numbers from 1 to n in ascending order. The function should not use any loops or iteration.
Example:
For n = 5, the output should be:
1
2
3
4
5
Signature:
public static void printNumbers(int n)
Input:
n that represents the upper limit of the number range (1 ≤ n ≤ 100).Output:
n in ascending order.Note: Your solution should be implemented using recursion and should not use any loops or iteration.
Explanation:
Here is the step-by-step recursive approach to solve the problem:
n is less than or equal to 0, return.printNumbers(n-1).n.Let's implement this solution in Java:
public class RecursivePrintNumbers {
public static void printNumbers(int n) {
if (n <= 0) {
return; // Base case
}
printNumbers(n-1); // Recursive call
System.out.println(n); // Print n
}
public static void main(String[] args) {
printNumbers(5); // Calling the function with n=5
}
}
Explanation of Solution:
When printNumbers(5) is called, it enters the printNumbers method with n=5.
Since 5 is greater than 0, it executes the recursive case by calling printNumbers(4), then printNumbers(3), and so on until printNumbers(0).
When printNumbers(0) is called, it hits the base case and returns without doing anything.
As the recursive calls unwind, printNumbers(1) is executed, followed by printNumbers(2), printNumbers(3), printNumbers(4), and finally printNumbers(5).
Now, as the recursive calls unwind, each number from 1 to 5 is printed in the correct order.
The output of the code above will be:
1
2
3
4
5
This demonstrates the recursive thinking process to print numbers from 1 to n in ascending order without using any loops or iteration.