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:
Date Time trong Java 8
The StackOverflowError in Java
Overflow and Underflow in Java
Java – Write to File
Getting Started with Stream Processing with Spring Cloud Data Flow
Guide to Java OutputStream
Remove HTML tags from a file to extract only the TEXT
Java Program to Create a Random Linear Extension for a DAG
Converting String to Stream of chars
Iterating over Enum Values in Java
Reactive WebSockets with Spring 5
Setting the Java Version in Maven
Converting Iterator to List
JWT – Token-based Authentication trong Jersey 2.x
Java Program to Find a Good Feedback Edge Set in a Graph
Java Program to Implement HashMap API
Giới thiệu luồng vào ra (I/O) trong Java
Programmatic Transaction Management in Spring
Automatic Property Expansion with Spring Boot
DistinctBy in the Java Stream API
Introduction to Spring Data JPA
Spring Boot - Application Properties
Chuyển đổi giữa các kiểu dữ liệu trong Java
Java Copy Constructor
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Java Program to Implement Sorted Circularly Singly Linked List
Java Program to Implement D-ary-Heap
Get the workstation name or IP
Hướng dẫn sử dụng Java Reflection
Spring MVC Setup with Kotlin
Java Program to Implement Bucket Sort
Java Program to Implement Threaded Binary Tree