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:
Deque và ArrayDeque trong Java
Collection trong java
Create a Custom Auto-Configuration with Spring Boot
Java Program to Solve a Matching Problem for a Given Specific Case
Handling Errors in Spring WebFlux
Java Program to Find Shortest Path Between All Vertices Using Floyd-Warshall’s Algorithm
Chuyển đổi giữa các kiểu dữ liệu trong Java
An Introduction to ThreadLocal in Java
Java Program to Implement SimpeBindings API
Mệnh đề if-else trong java
Check if a String is a Palindrome in Java
So sánh HashMap và HashSet trong Java
Immutable Objects in Java
Java Program to Perform Search in a BST
Different Ways to Capture Java Heap Dumps
Redirect to Different Pages after Login with Spring Security
Sending Emails with Java
Lập trình đa luồng với CompletableFuture trong Java 8
New Features in Java 15
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
Spring Boot Configuration with Jasypt
Spring Data JPA and Null Parameters
Debug a HttpURLConnection problem
Creating Docker Images with Spring Boot
Spring MVC and the @ModelAttribute Annotation
Spring Cloud Series – The Gateway Pattern
Java Program to Implement Queue using Two Stacks
Apache Tiles Integration with Spring MVC
HashMap trong Java hoạt động như thế nào?
Spring Boot - Logging
Java Program to Implement Hopcroft Algorithm
Java Program to Perform Right Rotation on a Binary Search Tree