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:
Database Migrations with Flyway
ClassNotFoundException vs NoClassDefFoundError
Spring Boot Integration Testing with Embedded MongoDB
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
A Guide to JUnit 5 Extensions
Using a Spring Cloud App Starter
Java Program to Implement EnumMap API
Hướng dẫn Java Design Pattern – Command
Java – Byte Array to Reader
Spring Boot - OAuth2 with JWT
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
How to Return 404 with Spring WebFlux
Java Program to Implement the One Time Pad Algorithm
ArrayList trong java
Spring Autowiring of Generic Types
HttpClient 4 Cookbook
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Java Program to Implement Hamiltonian Cycle Algorithm
Java Program to Implement Binary Tree
Java Program to Implement String Matching Using Vectors
Java Program to Generate Random Numbers Using Multiply with Carry Method
Guide to the Synchronized Keyword in Java
The Thread.join() Method in Java
Iterable to Stream in Java
Spring WebFlux Filters
Java Program to Implement Quick Sort with Given Complexity Constraint
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Removing all duplicates from a List in Java
A Guide to LinkedHashMap in Java
A Guide to Apache Commons Collections CollectionUtils
Hướng dẫn tạo và sử dụng ThreadPool trong Java
Convert String to Byte Array and Reverse in Java