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:
So sánh ArrayList và Vector trong Java
Tạo chương trình Java đầu tiên sử dụng Eclipse
Java Program to Implement Quick Sort Using Randomization
Java Program to Implement Park-Miller Random Number Generation Algorithm
Map to String Conversion in Java
Guide to CountDownLatch in Java
Quick Intro to Spring Cloud Configuration
New Features in Java 15
Java Program to Implement Gale Shapley Algorithm
Constructor Injection in Spring with Lombok
Collect a Java Stream to an Immutable Collection
Java Program to Represent Linear Equations in Matrix Form
Java Program to Implement Sieve Of Atkin
Zipping Collections in Java
Java Program to Represent Graph Using 2D Arrays
Performance Difference Between save() and saveAll() in Spring Data
Spring Boot - Tomcat Deployment
Add Multiple Items to an Java ArrayList
Generate Spring Boot REST Client with Swagger
Java Program to Solve the Fractional Knapsack Problem
Serve Static Resources with Spring
Java NIO2 Path API
Servlet 3 Async Support with Spring MVC and Spring Security
Cài đặt và sử dụng Swagger UI
Quick Guide to Spring MVC with Velocity
Case-Insensitive String Matching in Java
Java Program to Implement JobStateReasons API
Spring Security Custom AuthenticationFailureHandler
Receive email using POP3
Custom Thread Pools In Java 8 Parallel Streams
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
Java Program to Implement Iterative Deepening