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:
New Features in Java 13
Giới thiệu luồng vào ra (I/O) trong Java
Spring Boot - Hystrix
Spring REST API + OAuth2 + Angular
Converting Between a List and a Set in Java
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
Hướng dẫn Java Design Pattern – Prototype
Pagination and Sorting using Spring Data JPA
Ignore Null Fields with Jackson
Java Program to Perform Inorder Recursive Traversal of a Given Binary Tree
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Spring 5 Functional Bean Registration
Vòng lặp for, while, do-while trong Java
Java Program to Implement Uniform-Cost Search
The Spring @Controller and @RestController Annotations
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Java Program to Implement Booth Algorithm
How to Get a Name of a Method Being Executed?
Java Program to Implement Ternary Heap
Spring Boot - Unit Test Cases
Giới thiệu Java 8
Java Program to Implement Shoelace Algorithm
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Introduction to Netflix Archaius with Spring Cloud
Transaction Propagation and Isolation in Spring @Transactional
How to Round a Number to N Decimal Places in Java
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
Guide to Mustache with Spring Boot
Upload and Display Excel Files with Spring MVC
Remove the First Element from a List
Java Program to Implement LinkedTransferQueue API
OAuth 2.0 Resource Server With Spring Security 5