w3resource

Java Exercises: Form a staircase shape of n coins where every k-th row must have exactly k coins

Java Basic: Exercise-109 with Solution

Write a Java program to form a staircase shape of n coins where every k-th row must have exactly k coins.

Example 1:
n = 3
The coins can form the following rows:
$
$ $
We will return 2 rows.
Example 2:
n = 4
The coins can form the following rows:
$
$ $
$
We will return 2 rows as the 3rd row is incomplete.
Example 3:
n = 5
The coins can form the following rows:
$
$ $
$ $
We will return 2 rows as the 3rd row is incomplete.

Sample Solution:

Java Code:

import java.util.Scanner;
public class Example109 {
     public static void main(String[] arg) {
	  Scanner in = new Scanner(System.in);	
       System.out.print("Input a positive integer: ");
        int n = in.nextInt(); 
		if (n>0)
		{
           System.out.println("Number of rows: "+((int)((Math.sqrt(8 * (long)n + 1) - 1) / 2)));	
		}       	
	}	
}

Sample Output:

Input a positive integer: 5                                            
Number of rows: 2 

Flowchart:

Flowchart: Java exercises: Form a staircase shape of n coins where every k-th row must have exactly k coins

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Java program to add all the digits of a given positive integer until the result has a single digit.
Next: Write a Java program to check whether an given integer is a power of 4 or not.

What is the difficulty level of this exercise?



Java: Tips of the Day

Try and catch:

Java is excellent at catching errors, but it can only recover gracefully if you tell it what to do. The cascading hierarchy of attempting to perform an action in Java starts with try, falls back to catch, and ends with finally. Should the try clause fail, then catch is invoked, and in the end, there's always finally to perform some sensible action regardless of the results. Here's an example:

try {
        cmd = parser.parse(opt, args); 
       
        if(cmd.hasOption("help")) {
                HelpFormatter helper = new HelpFormatter();
                helper.printHelp("Hello ", opt);
                System.exit(0);
                }
        else {
                if(cmd.hasOption("shell") || cmd.hasOption("s")) {
                String target = cmd.getOptionValue("tgt");
                } // else
        } // fi
} catch (ParseException err) {
        System.out.println(err);
        System.exit(1);
        } //catch
        finally {
                new Hello().helloWorld(opt);
        } //finally
} //try

It's a robust system that attempts to avoid irrecoverable errors or, at least, to provide you with the option to give useful feedback to the user. Use it often, and your users will thank you!

Ref: https://red.ht/3EZc9OC