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:
Spring Security Authentication Provider
Spring Boot - Tomcat Deployment
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
How to Convert List to Map in Java
Java Program to Implement Sorted List
Java Program to Implement DelayQueue API
HashSet trong java
Pagination and Sorting using Spring Data JPA
Java Program to Implement Fibonacci Heap
Java Program to Perform Polygon Containment Test
Remove All Occurrences of a Specific Value from a List
An Intro to Spring Cloud Task
Spring Autowiring of Generic Types
Converting Between an Array and a Set in Java
“Stream has already been operated upon or closed” Exception in Java
Converting a Stack Trace to a String in Java
Spring Boot - Code Structure
Split a String in Java
Spring Webflux and CORS
Circular Dependencies in Spring
Java NIO2 Path API
Hướng dẫn Java Design Pattern – Iterator
Java Program to Implement Control Table
Hướng dẫn Java Design Pattern – Chain of Responsibility
Shuffling Collections In Java
Java Program to Check Cycle in a Graph using Topological Sort
Guide to Spring Cloud Kubernetes
Copy a List to Another List in Java
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
JUnit5 @RunWith
Iterable to Stream in Java
Thực thi nhiều tác vụ cùng lúc như thế nào trong Java?