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:



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 !!