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:
Logging a Reactive Sequence
Java Program to Check the Connectivity of Graph Using BFS
A Custom Media Type for a Spring REST API
LinkedList trong java
Spring Web Annotations
Sort a HashMap in Java
Java Program to do a Depth First Search/Traversal on a graph non-recursively
Java Program to Implement IdentityHashMap API
Guide to CountDownLatch in Java
Recommended Package Structure of a Spring Boot Project
Hướng dẫn tạo và sử dụng ThreadPool trong Java
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Rate Limiting in Spring Cloud Netflix Zuul
Java Program to Implement Ternary Search Tree
JPA/Hibernate Persistence Context
Java Program to Implement Binary Heap
Spring MVC Content Negotiation
Setting Up Swagger 2 with a Spring REST API
Java Program to Implement Tarjan Algorithm
Java Program to Implement Range Tree
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Java Program to Implement Gale Shapley Algorithm
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Jackson vs Gson
Transactions with Spring and JPA
Java Program to Check Whether a Given Point is in a Given Polygon
Java Program to Check the Connectivity of Graph Using DFS
Anonymous Classes in Java
Guide to Selenium with JUnit / TestNG
Apache Commons Collections MapUtils
Format ZonedDateTime to String
Java Program to Find kth Largest Element in a Sequence