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 Multi-line String
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Constructor Dependency Injection in Spring
String Processing with Apache Commons Lang 3
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
File Upload with Spring MVC
Java Program to Solve a Matching Problem for a Given Specific Case
Retrieve User Information in Spring Security
REST Pagination in Spring
Java Program to Implement the Vigenere Cypher
Introduction to PCollections
Java Program to Perform the Unique Factorization of a Given Number
Quick Guide to Spring Controllers
Abstract class và Interface trong Java
Java Program to Implement Sieve Of Eratosthenes
Hướng dẫn Java Design Pattern – Chain of Responsibility
Guide to Java 8 groupingBy Collector
Java Program to Implement Variable length array
@DynamicUpdate with Spring Data JPA
Annotation trong Java 8
Tips for dealing with HTTP-related problems
Spring Boot - Flyway Database
Java Program to Find the Vertex Connectivity of a Graph
Hướng dẫn Java Design Pattern – Composite
Java Program to Implement Heap
Spring – Injecting Collections
Java Program to Implement ArrayDeque API
The Order of Tests in JUnit
Spring Boot - Cloud Configuration Server
Java Program to Implement ArrayList API
Form Validation with AngularJS and Spring MVC
Java Program to Implement HashSet API