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:
Registration – Password Strength and Rules
Simple Single Sign-On with Spring Security OAuth2
Java Program to Implement Hamiltonian Cycle Algorithm
Java Program to Describe the Representation of Graph using Adjacency List
Java Program to Check Whether Topological Sorting can be Performed in a Graph
HTTP Authentification and CGI/Servlet
The Order of Tests in JUnit
Java Program to Check if a Point d lies Inside or Outside a Circle Defined by Points a, b, c in a Pl...
Getting Started with Stream Processing with Spring Cloud Data Flow
Spring MVC Content Negotiation
Using Java Assertions
Java Program to Implement LinkedTransferQueue API
Build a REST API with Spring and Java Config
Guide to the Java Queue Interface
Understanding Memory Leaks in Java
CyclicBarrier in Java
Spring RestTemplate Error Handling
Spring WebClient vs. RestTemplate
Java Program to Generate Random Hexadecimal Byte
Removing all Nulls from a List in Java
Java Program to Implement vector
Redirect to Different Pages after Login with Spring Security
Java Program to Implement Dijkstra’s Algorithm using Queue
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Luồng Daemon (Daemon Thread) trong Java
Java Program to Implement Dijkstra’s Algorithm using Set
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Java Program to Perform Partial Key Search in a K-D Tree
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Java toString() Method
Split a String in Java
Spring Boot - Quick Start