Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Welcome to All Test Answers

Java recursive function that takes as input the number of rows n and outputs the total number of pins that would exist in a pyramid with n rows

Consider a frame of bowling pins shown below, where each * represents a pin:

     *
    * *
   * * *
  * * * *
* * * * *

There are 5 rows and a total of 15 pins.
If we had only the top 4 rows, then there would be a total of 10 pins.
If we had only the top three rows, then there would be a total of six pins.
If we had only the top two rows, then there would be a total of three pins.
If we had only the top row, then there would be a total of one pin.

Write a java recursive function that takes as input the number of rows n and outputs
the total number of pins that would exist in a pyramid with n rows. Your program
should allow for values of n that are larger than 5.

Answer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Scanner;
 
public class QuestionBowlingPins
{
    /**
    * numberOfPins
    * Recursively compute number of bowling pins if we have n rows.
    * If there are no rows, then there are 0 pins.
    * If there is only one row, then there is 1 pin.
    * If there are two rows, then we have two pins in row 2 + 1 from row 1 = 3
    * If there are three rows, then we have three pins in row 3, plus
    *    the three pins if there were two rows, for 6 pins.a
    * The recursive definition is:
    *     pins(n) = n + pins(n-1)
    **/
    public static int numberOfPins(int rows)
    {
       if (rows <=0) return 0;
       return (rows) + numberOfPins(rows-1);
    }
 
    // ======================
    //     main method
    // ======================
    public static void main(String[] args)
    {
      // Input variables
      int num_rows;
      int num_pins;
      Scanner scan =  new Scanner(System.in);
 
      System.out.println("How many rows of bowling pins will there be?");
      num_rows = scan.nextInt();
 
      num_pins = numberOfPins(num_rows);
 
      System.out.println("You will need to set up " + num_pins + " bowling pins.");
    }
}

About

Leave a reply

Captcha Click on image to update the captcha .

error: Content is protected !!