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 – Write to File
Jackson Exceptions – Problems and Solutions
REST Web service: Upload và Download file với Jersey 2.x
The StackOverflowError in Java
Java Program to Perform integer Partition for a Specific Case
Java Program to Implement LinkedTransferQueue API
Validate email address exists or not by Java Code
Java Program to Implement D-ary-Heap
Java Program to Implement Double Ended Queue
Java equals() and hashCode() Contracts
Object cloning trong java
Converting String to Stream of chars
Hướng dẫn Java Design Pattern – Factory Method
Java Program to Implement RenderingHints API
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Spring Data MongoDB Transactions
HashMap trong Java hoạt động như thế nào?
A Guide to Java SynchronousQueue
Send email with authentication
Java Program to Find Minimum Element in an Array using Linear Search
String Joiner trong Java 8
Java Program to implement Bi Directional Map
Updating your Password
Java Program to Compare Binary and Sequential Search
Lớp lồng nhau trong java (Java inner class)
Using a Spring Cloud App Starter
Java Program to Implement Ford–Fulkerson Algorithm
Java Program to Implement Solovay Strassen Primality Test Algorithm
Java Program to Implement Knight’s Tour Problem
Life Cycle of a Thread in Java
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Java Program to Generate a Sequence of N Characters for a Given Specific Case