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:
JWT – Token-based Authentication trong Jersey 2.x
Collect a Java Stream to an Immutable Collection
Java Web Services – JAX-WS – SOAP
Luồng Daemon (Daemon Thread) trong Java
Java Program to Implement Binary Tree
Spring Boot - Actuator
Control the Session with Spring Security
A Guide to TreeSet in Java
Hướng dẫn Java Design Pattern – Adapter
Vector trong Java
So sánh HashMap và HashSet trong Java
Handling URL Encoded Form Data in Spring REST
A Quick JUnit vs TestNG Comparison
Java – Combine Multiple Collections
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Lớp Arrarys trong Java (Arrays Utility Class)
Java Program to Implement Heap Sort Using Library Functions
Guide to the Volatile Keyword in Java
Getting Started with Custom Deserialization in Jackson
Java Program to Perform Partition of an Integer in All Possible Ways
Java Program to Implement Word Wrap Problem
REST Web service: Tạo ứng dụng Java RESTful Client với Jersey Client 2.x
Send email with JavaMail
Java Program to Implement Range Tree
Lập trình hướng đối tượng (OOPs) trong java
Java Program to Implement IdentityHashMap API
Java 8 – Powerful Comparison with Lambdas
Versioning a REST API
Servlet 3 Async Support with Spring MVC and Spring Security
Introduction to Spring Cloud Netflix – Eureka
Debugging Reactive Streams in Java
Java Concurrency Interview Questions and Answers