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 Cloud Connectors and Heroku
Java Program to Implement Regular Falsi Algorithm
String Processing with Apache Commons Lang 3
Spring – Injecting Collections
Marker Interface trong Java
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Java Program to Check whether Graph is Biconnected
Xử lý ngoại lệ đối với trường hợp ghi đè phương thức trong java
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Java Program to Perform the Unique Factorization of a Given Number
Guide to Java 8’s Collectors
Spring Autowiring of Generic Types
What is a POJO Class?
How to Change the Default Port in Spring Boot
Java Program to Implement Best-First Search
Java Program to Implement Expression Tree
Java Program to Create the Prufer Code for a Tree
Connect through a Proxy
Transaction Propagation and Isolation in Spring @Transactional
Guide to Escaping Characters in Java RegExps
Java Program to Check if a Directed Graph is a Tree or Not Using DFS
Java Program to Implement Graph Structured Stack
Java Program to implement Dynamic Array
Guide to WeakHashMap in Java
Enum trong java
Mệnh đề if-else trong java
New Features in Java 11
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Find Nearest Neighbor for Static Data Set
Java Program to Implement Self Balancing Binary Search Tree
Introduction to Spring Data MongoDB
Chuyển đổi Array sang ArrayList và ngược lại