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:
Xây dựng ứng dụng Client-Server với Socket trong Java
Serialization và Deserialization trong java
Java Program to implement Bit Set
Base64 encoding và decoding trong Java 8
A Guide to JPA with Spring
Generating Random Dates in Java
Simple Single Sign-On with Spring Security OAuth2
Java List UnsupportedOperationException
Java Program to Describe the Representation of Graph using Adjacency List
Java Program to Implement K Way Merge Algorithm
Java Program to Implement Dijkstra’s Algorithm using Set
Java Program to Implement Park-Miller Random Number Generation Algorithm
Hướng dẫn Java Design Pattern – Null Object
Serve Static Resources with Spring
New Features in Java 15
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Guide to Mustache with Spring Boot
Java Program to Perform the Sorting Using Counting Sort
Java Program to implement Array Deque
Java Program to Implement Ternary Search Algorithm
Java Program to Check for balanced parenthesis by using Stacks
Posting with HttpClient
Java InputStream to String
Java Program to Implement ArrayDeque API
Spring Boot - Database Handling
HttpClient with SSL
Guide to System.gc()
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Map to String Conversion in Java
@DynamicUpdate with Spring Data JPA
Spring Boot - OAuth2 with JWT
A Guide to ConcurrentMap