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 Program to Implement Wagner and Fisher Algorithm for online String Matching
The DAO with JPA and Spring
Predicate trong Java 8
Spring Cloud AWS – Messaging Support
Spring Boot - Flyway Database
Java Program to Create a Balanced Binary Tree of the Incoming Data
Hướng dẫn sử dụng String Format trong Java
Jackson Annotation Examples
Query Entities by Dates and Times with Spring Data JPA
Mix plain text and HTML content in a mail
Java – Reader to String
Java String to InputStream
Java Program to Implement Range Tree
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Spring WebFlux Filters
Spring Boot - Tomcat Deployment
Serve Static Resources with Spring
String Joiner trong Java 8
Java Program to Implement Find all Cross Edges in a Graph
Feign – Tạo ứng dụng Java RESTful Client
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Send email with JavaMail
Remove the First Element from a List
HttpClient Connection Management
Java Program to Perform Searching Based on Locality of Reference
Hướng dẫn Java Design Pattern – Intercepting Filter
Giới thiệu Design Patterns
Java Program to Implement Dijkstra’s Algorithm using Set
Merging Two Maps with Java 8
Java Program to Implement Caesar Cypher
Cài đặt và sử dụng Swagger UI
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset