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:
Refactoring Design Pattern với tính năng mới trong Java 8
Guide to BufferedReader
Spring Boot - Database Handling
Reactive WebSockets with Spring 5
Java Program to Solve any Linear Equation in One Variable
Serialization và Deserialization trong java
StringBuilder vs StringBuffer in Java
Wiring in Spring: @Autowired, @Resource and @Inject
A Guide To UDP In Java
Spring Boot Actuator
Introduction to Java 8 Streams
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Java Program to Construct an Expression Tree for an Infix Expression
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
JUnit 5 @Test Annotation
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Java Program to Implement Triply Linked List
Java Program to Generate N Number of Passwords of Length M Each
Hướng dẫn Java Design Pattern – Mediator
Java Program to Implement Heap
How to Set TLS Version in Apache HttpClient
Java Program to Perform Searching Based on Locality of Reference
Java Program to Find k Numbers Closest to Median of S, Where S is a Set of n Numbers
Spring Boot - Building RESTful Web Services
Deploy a Spring Boot WAR into a Tomcat Server
Guava – Join and Split Collections
Spring REST API + OAuth2 + Angular
Java Program to Compare Binary and Sequential Search
Java Program to Implement Stein GCD Algorithm
Map to String Conversion in Java
Chuyển đổi giữa các kiểu dữ liệu trong Java
Debug a HttpURLConnection problem