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:
Validate email address exists or not by Java Code
Spring Security and OpenID Connect
Jackson – Bidirectional Relationships
Java TreeMap vs HashMap
Java Program to implement Circular Buffer
Java Program to Solve any Linear Equations
Spring RequestMapping
HttpClient Timeout
Java Program to Implement String Matching Using Vectors
Ignore Null Fields with Jackson
Java Program to Implement Queue using Two Stacks
Giới thiệu Java 8
Biến trong java
Java Program to Implement Adjacency List
Java – Byte Array to Reader
A Guide to the Java LinkedList
Assertions in JUnit 4 and JUnit 5
Spring Boot - Building RESTful Web Services
Java Program to Implement PriorityQueue API
Java Program to Optimize Wire Length in Electrical Circuit
Working with Kotlin and JPA
Display Auto-Configuration Report in Spring Boot
Java Program to Implement Sorted List
Java Program to Implement Fenwick Tree
Java Program to Implement the Bin Packing Algorithm
Java Program to Implement RoleList API
Disable DNS caching
Spring Boot - Cloud Configuration Client
Hướng dẫn Java Design Pattern – State
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java
Cơ chế Upcasting và Downcasting trong java
Custom Thread Pools In Java 8 Parallel Streams