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:
Java Web Services – JAX-WS – SOAP
Guide to java.util.concurrent.Future
Java 8 Collectors toMap
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Spring Boot - Enabling HTTPS
Java Program to Implement Skip List
Spring Boot - Google OAuth2 Sign-In
Primitive Type Streams in Java 8
A Quick Guide to Spring MVC Matrix Variables
Guide to WeakHashMap in Java
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Creating a Generic Array in Java
Java Program to Perform Partial Key Search in a K-D Tree
A Guide to Apache Commons Collections CollectionUtils
Build a REST API with Spring and Java Config
Ép kiểu trong Java (Type casting)
Hashtable trong java
Java Program to Repeatedly Search the Same Text (such as Bible by building a Data Structure)
Implementing a Runnable vs Extending a Thread
Spring Security 5 for Reactive Applications
Guide to BufferedReader
Custom Error Pages with Spring MVC
Hướng dẫn Java Design Pattern – Visitor
Overflow and Underflow in Java
Java Program to Check whether Directed Graph is Connected using DFS
REST Web service: Upload và Download file với Jersey 2.x
Spring Boot: Customize Whitelabel Error Page
Different Ways to Capture Java Heap Dumps
Phương thức forEach() trong java 8
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Java Program to Find the Connected Components of an UnDirected Graph
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java