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:
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Hướng dẫn Java Design Pattern – Proxy
Java Byte Array to InputStream
DistinctBy in the Java Stream API
Java Program to Solve the 0-1 Knapsack Problem
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
An Intro to Spring Cloud Vault
Semaphore trong Java
Spring Cloud – Tracing Services with Zipkin
Spring RequestMapping
Validate email address exists or not by Java Code
Java – Write an InputStream to a File
Java Program to Decode a Message Encoded Using Playfair Cipher
Using Spring ResponseEntity to Manipulate the HTTP Response
HttpClient Basic Authentication
Java Program to Perform String Matching Using String Library
Java Program to Implement TreeSet API
Spring Boot Annotations
Sorting Query Results with Spring Data
Java Program to Implement the Bin Packing Algorithm
Java – Write to File
Configuring a DataSource Programmatically in Spring Boot
Spring Boot - Flyway Database
Spring @Primary Annotation
Giới thiệu luồng vào ra (I/O) trong Java
Spring Boot - Runners
Hướng dẫn Java Design Pattern – Singleton
Lập trình đa luồng trong Java (Java Multi-threading)
A Guide to EnumMap
A Guide to WatchService in Java NIO2
Java Program to Implement Sieve Of Sundaram
Programmatic Transaction Management in Spring