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:
Iterating over Enum Values in Java
Java Program to Implement Uniform-Cost Search
Apache Commons Collections MapUtils
XML Serialization and Deserialization with Jackson
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Generating Random Dates in Java
Java Program to Solve Tower of Hanoi Problem using Stacks
Java Program to Implement Queue using Linked List
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
Most commonly used String methods in Java
Java Program to Implement Self Balancing Binary Search Tree
Spring Boot: Customize the Jackson ObjectMapper
Serverless Functions with Spring Cloud Function
Join and Split Arrays and Collections in Java
How to Round a Number to N Decimal Places in Java
Guide to Escaping Characters in Java RegExps
XML-Based Injection in Spring
Giới thiệu HATEOAS
Guide to CountDownLatch in Java
How to Use if/else Logic in Java 8 Streams
So sánh Array và ArrayList trong Java
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
Java Program to implement Bi Directional Map
Introduction to the Functional Web Framework in Spring 5
Spring REST API + OAuth2 + Angular
Java Program to Implement Horner Algorithm
Copy a List to Another List in Java
Java – Write an InputStream to a File
Apache Commons Collections Bag
Java Program to Implement SynchronosQueue API
Java Program to Delete a Particular Node in a Tree Without Using Recursion