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:
Spring Boot - Bootstrapping
Optional trong Java 8
Java Program to Implement Binomial Heap
So sánh ArrayList và LinkedList trong Java
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Java – Write a Reader to File
Pagination and Sorting using Spring Data JPA
Guide to Character Encoding
Using Spring ResponseEntity to Manipulate the HTTP Response
Introduction to Using Thymeleaf in Spring
Hướng dẫn Java Design Pattern – Abstract Factory
Guide to the Synchronized Keyword in Java
Đồng bộ hóa các luồng trong Java
REST Web service: Tạo ứng dụng Java RESTful Client với Jersey Client 2.x
Java Program to Perform Insertion in a 2 Dimension K-D Tree
Serialize Only Fields that meet a Custom Criteria with Jackson
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
Guide to BufferedReader
Java Timer
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
Java Program to Represent Linear Equations in Matrix Form
Mix plain text and HTML content in a mail
Hướng dẫn Java Design Pattern – Memento
How to Break from Java Stream forEach
Guide to the Fork/Join Framework in Java
Java Program to Implement Weight Balanced Tree
Java Program to Implement Queue
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Java Program to Implement the String Search Algorithm for Short Text Sizes
Spring Boot - Code Structure
Comparing Dates in Java
Function trong Java 8