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 Skew Heap
Custom HTTP Header with the HttpClient
Java Program to Compute the Volume of a Tetrahedron Using Determinants
Spring Boot - Service Components
Java Program to Implement Horner Algorithm
Form Validation with AngularJS and Spring MVC
Java Program to Implement CopyOnWriteArrayList API
Encode a String to UTF-8 in Java
HandlerAdapters in Spring MVC
Java Program to Implement Min Hash
SOAP Web service: Authentication trong JAX-WS
Java Program to Find Number of Articulation points in a Graph
Java Program to Perform the Shaker Sort
Java Program to Implement Graph Coloring Algorithm
Java Program to Implement the Hill Cypher
Java Program to Implement Gauss Seidel Method
Java Program to Perform Optimal Paranthesization Using Dynamic Programming
Convert Hex to ASCII in Java
Java Program to Perform the Sorting Using Counting Sort
Java Program to Find Transpose of a Graph Matrix
Difference Between Wait and Sleep in Java
Spring Boot Integration Testing with Embedded MongoDB
Logout in an OAuth Secured Application
Spring Security – security none, filters none, access permitAll
Hướng dẫn Java Design Pattern – Flyweight
Cơ chế Upcasting và Downcasting trong java
Java Program to Compute Cross Product of Two Vectors
Java Program to Implement Gaussian Elimination Algorithm
Servlet 3 Async Support with Spring MVC and Spring Security
Giới thiệu HATEOAS
Spring Boot - File Handling
Generating Random Numbers in a Range in Java