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:
Sử dụng CountDownLatch trong Java
Intersection of Two Lists in Java
Migrating from JUnit 4 to JUnit 5
Running Spring Boot Applications With Minikube
Java Program to Implement Counting Sort
Predicate trong Java 8
Guide to Dynamic Tests in Junit 5
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Java Program to Implement Rope
Java Program to Implement Bresenham Line Algorithm
New Features in Java 14
Spring Boot - Service Components
Lớp Arrarys trong Java (Arrays Utility Class)
Java Program to Implement ConcurrentLinkedQueue API
Spring Security Authentication Provider
Converting Between Byte Arrays and Hexadecimal Strings in Java
Error Handling for REST with Spring
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Java Program to Implement Randomized Binary Search Tree
Command-Line Arguments in Java
Java Streams vs Vavr Streams
Java Program to Solve the 0-1 Knapsack Problem
Java Program to Implement Gaussian Elimination Algorithm
Java Program to Solve Tower of Hanoi Problem using Stacks
Java Program to Implement Regular Falsi Algorithm
Assert an Exception is Thrown in JUnit 4 and 5
Java Program to Encode a Message Using Playfair Cipher
Checked and Unchecked Exceptions in Java
Introduction to Spring Method Security
Spring Security and OpenID Connect
DistinctBy in the Java Stream API
Java Program to Implement Affine Cipher