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:
Apache Commons Collections Bag
Netflix Archaius with Various Database Configurations
Guide to the Fork/Join Framework in Java
Giới thiệu HATEOAS
Generating Random Numbers in a Range in Java
A Guide to ConcurrentMap
Java Program to Compute Determinant of a Matrix
Java Program to Construct an Expression Tree for an Prefix Expression
A Guide to JUnit 5 Extensions
Intersection of Two Lists in Java
HandlerAdapters in Spring MVC
Java – Get Random Item/Element From a List
Feign – Tạo ứng dụng Java RESTful Client
Spring @Primary Annotation
Creating a Web Application with Spring 5
Java Program to Implement Sieve Of Atkin
Java Program to Implement Hash Tables
Comparing Long Values in Java
So sánh Array và ArrayList trong Java
Logout in an OAuth Secured Application
Java Multi-line String
Migrating from JUnit 4 to JUnit 5
Introduction to Java Serialization
Spring Boot - Runners
Spring Security OAuth Login with WebFlux
Custom Error Pages with Spring MVC
Java Program to Implement Jarvis Algorithm
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Spring Security Form Login
Tránh lỗi NullPointerException trong Java như thế nào?
Using Spring ResponseEntity to Manipulate the HTTP Response
Java List UnsupportedOperationException