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:
Circular Dependencies in Spring
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Java Switch Statement
Java Program to Implement Sparse Array
Java Program to Implement the String Search Algorithm for Short Text Sizes
HashSet trong Java hoạt động như thế nào?
Getting Started with Stream Processing with Spring Cloud Data Flow
Java Program to Implement Insertion Sort
Spring Boot Configuration with Jasypt
Jackson – Bidirectional Relationships
New Features in Java 12
Java Program to Implement Hash Tables with Double Hashing
Luồng Daemon (Daemon Thread) trong Java
Introduction to the Java NIO2 File API
Convert Hex to ASCII in Java
Immutable Map Implementations in Java
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Java Program to Implement Shoelace Algorithm
Command-Line Arguments in Java
Spring @RequestMapping New Shortcut Annotations
Lớp Collections trong Java (Collections Utility Class)
wait() and notify() Methods in Java
A Guide to TreeSet in Java
The Difference Between map() and flatMap()
Introduction to the Java ArrayDeque
Spring NoSuchBeanDefinitionException
Guide to Selenium with JUnit / TestNG
Create a Custom Exception in Java
Tips for dealing with HTTP-related problems
Java Program to Implement Quick Sort with Given Complexity Constraint
Spring Boot - Actuator
Hướng dẫn Java Design Pattern – Dependency Injection