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:
Guide to the Synchronized Keyword in Java
Java Program to Implement the linear congruential generator for Pseudo Random Number Generation
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
REST Pagination in Spring
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
How to Delay Code Execution in Java
Hướng dẫn Java Design Pattern – Bridge
Automatic Property Expansion with Spring Boot
Reversing a Linked List in Java
Serialize Only Fields that meet a Custom Criteria with Jackson
Sử dụng CountDownLatch trong Java
Server-Sent Events in Spring
Copy a List to Another List in Java
Java Program to Implement Unrolled Linked List
Java – File to Reader
Java Program to Check the Connectivity of Graph Using DFS
Remove All Occurrences of a Specific Value from a List
Spring Boot - Zuul Proxy Server and Routing
Các kiểu dữ liệu trong java
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
An Example of Load Balancing with Zuul and Eureka
Jackson – Unmarshall to Collection/Array
Java Program to Solve TSP Using Minimum Spanning Trees
Convert String to int or Integer in Java
Guide to Character Encoding
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Spring Security Login Page with React
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Concatenating Strings In Java
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
Introduction to Spring Cloud Stream
Supplier trong Java 8