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 Program to Perform Searching Using Self-Organizing Lists
Java Program to Implement ConcurrentLinkedQueue API
Tính kế thừa (Inheritance) trong java
Lớp Properties trong java
Lập trình đa luồng trong Java (Java Multi-threading)
Introduction to Java 8 Streams
Overflow and Underflow in Java
Java Program to Implement the RSA Algorithm
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Get the workstation name or IP
How to Count Duplicate Elements in Arraylist
Spring Boot - Enabling Swagger2
New Features in Java 10
Spring REST API + OAuth2 + Angular (using the Spring Security OAuth legacy stack)
Spring Boot - Securing Web Applications
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Apache Commons Collections SetUtils
Một số tính năng mới về xử lý ngoại lệ trong Java 7
How to Read HTTP Headers in Spring REST Controllers
Spring Cloud Series – The Gateway Pattern
Constructor Injection in Spring with Lombok
Spring Boot - Servlet Filter
ExecutorService – Waiting for Threads to Finish
Spring MVC Setup with Kotlin
Encode/Decode to/from Base64
Java Program to Permute All Letters of an Input String
Java Program to Implement CopyOnWriteArraySet API
Spring WebClient and OAuth2 Support
Java Program to Implement Merge Sort on n Numbers Without tail-recursion
ETL with Spring Cloud Data Flow
Sorting in Java
Daemon Threads in Java