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:
Iterable to Stream in Java
Spring WebFlux Filters
LinkedHashSet trong Java hoạt động như thế nào?
Implementing a Runnable vs Extending a Thread
Using a List of Values in a JdbcTemplate IN Clause
Spring Boot With H2 Database
Java 8 StringJoiner
Java InputStream to String
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java
Java Program to Implement VList
Request a Delivery / Read Receipt in Javamail
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence
Chuyển đổi từ HashMap sang ArrayList
Quản lý bộ nhớ trong Java với Heap Space vs Stack
Java Program to Implement Repeated Squaring Algorithm
Anonymous Classes in Java
Spring Security Form Login
The Java 8 Stream API Tutorial
Hướng dẫn Java Design Pattern – MVC
Java Program to Perform Polygon Containment Test
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Adding Shutdown Hooks for JVM Applications
Mix plain text and HTML content in a mail
Spring Boot - Tomcat Port Number
Transaction Propagation and Isolation in Spring @Transactional
Difference Between Wait and Sleep in Java
Spring Cloud Bus
Bootstrap a Web Application with Spring 5
Java Program to implement Associate Array
Java Program to Generate a Random Subset by Coin Flipping
Converting Between a List and a Set in Java
Java Program to Check for balanced parenthesis by using Stacks