This is a java program to find the number of ways to write a given number as sum of numbers less than the number itself. We start with the number, number minus one is the next partition and so on, till all one’s are the last partition where we stop.
Here is the source code of the Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to find the number of ways to write a number as a sum of smaller than the number itself
import java.util.Scanner;
public class NumberOf_Unique_Partitions
{
public static void print(int[] p, int n, int count)
{
for (int i = 0; i < n; i++)
System.out.print(p[i] + " ");
System.out.println();
int j;
for (j = 0; j < n; j++)
{
if (p[j] == 1)
continue;
else
break;
}
if (j == n)
System.out
.println("The number of ways to write a number as a sum of number smaller than itself is :"
+ (count - 1));
}
public static void generateUniquePartition(int n)
{
int[] p = new int[n];
int k = 0, count = 0;
p[k] = n;
while (true)
{
count++;
print(p, k + 1, count);
int rem_value = 0;
while (k >= 0 && p[k] == 1)
{
rem_value += p[k];
k--;
}
if (k < 0)
return;
p[k]--;
rem_value++;
while (rem_value > p[k])
{
p[k + 1] = p[k];
rem_value -= p[k];
k++;
}
p[k + 1] = rem_value;
k++;
}
}
public static void main(String args[])
{
System.out.println("Unique Partitioning of a given number");
System.out.println("Enter the number:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
generateUniquePartition(n);
sc.close();
}
}
Output:
$ javac NumberOf_Unique_Partitions.java $ java NumberOf_Unique_Partitions Unique Partitioning of a given number Enter the number: 6 6 5 1 4 2 4 1 1 3 3 3 2 1 3 1 1 1 2 2 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 The number of ways to write as a sum of number smaller than itself is :10
Related posts:
Apache Commons Collections Bag
Guide to the Volatile Keyword in Java
Java Program to Implement Maximum Length Chain of Pairs
Converting Between Byte Arrays and Hexadecimal Strings in Java
CharSequence vs. String in Java
Build a REST API with Spring and Java Config
Java Program to Implement TreeSet API
Java Program to Create a Balanced Binary Tree of the Incoming Data
Inject Parameters into JUnit Jupiter Unit Tests
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
So sánh Array và ArrayList trong Java
Runnable vs. Callable in Java
Java Web Services – JAX-WS – SOAP
Immutable ArrayList in Java
Java Program to Implement Shunting Yard Algorithm
Java Program to Check Multiplicability of Two Matrices
Spring Boot - Actuator
Java Program to Check the Connectivity of Graph Using DFS
Get the workstation name or IP
Java Program to Check whether Directed Graph is Connected using BFS
Hashing a Password in Java
How to Add a Single Element to a Stream
Jackson – Unmarshall to Collection/Array
Lớp LinkedHashMap trong Java
A Guide to the Java ExecutorService
Java Program to Perform Search in a BST
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Java Program to Perform Uniform Binary Search
How to Find an Element in a List with Java
Java – Delete a File
Spring Boot - Bootstrapping
Working With Maps Using Streams