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 Graph Structured Stack
Java Program to Generate Date Between Given Range
Array to String Conversions
A Guide to @RepeatedTest in Junit 5
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Iterable to Stream in Java
Java Program for Douglas-Peucker Algorithm Implementation
HTTP Authentification and CGI/Servlet
HttpClient Basic Authentication
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Java Program to implement Dynamic Array
Mệnh đề if-else trong java
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Java Program to Implement Meldable Heap
Using the Map.Entry Java Class
Spring MVC Async vs Spring WebFlux
Receive email by java client
Using Optional with Jackson
Giới thiệu luồng vào ra (I/O) trong Java
Introduction to Spring Data JDBC
Guide to UUID in Java
Adding Parameters to HttpClient Requests
Daemon Threads in Java
Spring Boot - Introduction
Java Program to Find the Connected Components of an UnDirected Graph
Fixing 401s with CORS Preflights and Spring Security
Calling Stored Procedures from Spring Data JPA Repositories
Java Collections Interview Questions
Java Program to Create a Balanced Binary Tree of the Incoming Data
Spring Boot - Zuul Proxy Server and Routing
Java Program to Implement LinkedBlockingDeque API
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle