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 Implement Aho-Corasick Algorithm for String Matching
Java Program to Implement Nth Root Algorithm
Java Program to Implement Warshall Algorithm
Java Program to Implement Radix Sort
Java Program to Implement Levenshtein Distance Computing Algorithm
Posting with HttpClient
Hướng dẫn Java Design Pattern – Proxy
Functional Interface trong Java 8
Guide to Java 8’s Collectors
Các nguyên lý thiết kế hướng đối tượng – SOLID
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
How to Store Duplicate Keys in a Map in Java?
Guide to Guava Table
A Guide to LinkedHashMap in Java
Hướng dẫn Java Design Pattern – DAO
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Compare Two JSON Objects with Jackson
Spring Security Basic Authentication
HttpClient 4 – Follow Redirects for POST
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Spring Cloud AWS – S3
Compact Strings in Java 9
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Introduction to Thread Pools in Java
Jackson – Unmarshall to Collection/Array
Java Program to Implement Max Heap
Arrays.asList vs new ArrayList(Arrays.asList())
Using a List of Values in a JdbcTemplate IN Clause
Custom HTTP Header with the HttpClient
DistinctBy in the Java Stream API
Spring’s RequestBody and ResponseBody Annotations
Java Program to Implement Treap