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 Euler Circuit Problem
An Intro to Spring Cloud Task
How to use the Spring FactoryBean?
Optional trong Java 8
So sánh ArrayList và LinkedList trong Java
Java InputStream to String
Intro to the Jackson ObjectMapper
Tạo chương trình Java đầu tiên sử dụng Eclipse
Circular Dependencies in Spring
String Initialization in Java
Java Program to Implement Suffix Array
A Guide to JUnit 5 Extensions
Flattening Nested Collections in Java
Guide to DelayQueue
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Java Timer
HashMap trong Java hoạt động như thế nào?
Filtering a Stream of Optionals in Java
Jackson JSON Views
Java 8 StringJoiner
Java Program to Implement Jarvis Algorithm
Java Program to Implement Rope
An Introduction to ThreadLocal in Java
Chuyển đổi từ HashMap sang ArrayList
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Java Copy Constructor
Hướng dẫn sử dụng Lớp FilePermission trong java
Consumer trong Java 8
Java Program to Implement ArrayBlockingQueue API
Summing Numbers with Java Streams
Receive email by java client
Spring Boot With H2 Database