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 Find Transpose of a Graph Matrix
Java Program to Implement AttributeList API
Custom HTTP Header with the HttpClient
Spring Boot Annotations
Java Program to Implement the Vigenere Cypher
Use Liquibase to Safely Evolve Your Database Schema
Introduction to Eclipse Collections
Java Program to do a Depth First Search/Traversal on a graph non-recursively
Giới thiệu Google Guice – Binding
Phương thức tham chiếu trong Java 8 – Method References
Java Program to Implement Hash Tables Chaining with Binary Trees
Java Program to Implement the Bin Packing Algorithm
Java Program to Implement Min Heap
Giới thiệu HATEOAS
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java
Convert String to int or Integer in Java
Introduction to the Functional Web Framework in Spring 5
Java 9 Stream API Improvements
Comparing Arrays in Java
Spring RequestMapping
Spring Security Basic Authentication
Java Program to Implement Fenwick Tree
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Collect a Java Stream to an Immutable Collection
Sending Emails with Java
Java 8 and Infinite Streams
Introduction to Spring Cloud Netflix – Eureka
Java Program to Implement Lloyd’s Algorithm
Java Program to Implement Binary Heap
Count Occurrences of a Char in a String
Java Program to Implement Find all Cross Edges in a Graph
Using Optional with Jackson