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:
Spring 5 Testing with @EnabledIf Annotation
Guide to java.util.concurrent.Locks
HashSet trong java
Java Program to Implement Heap Sort Using Library Functions
Lập trình đa luồng với Callable và Future trong Java
Java Program to Implement Sorted List
Mệnh đề if-else trong java
Spring – Injecting Collections
Convert Time to Milliseconds in Java
Java Program to Implement Circular Singly Linked List
Chương trình Java đầu tiên
Transaction Propagation and Isolation in Spring @Transactional
A Guide to the Java ExecutorService
Java Program to Check if it is a Sparse Matrix
How to Change the Default Port in Spring Boot
Java Program to Implement Fermat Primality Test Algorithm
Guide to @ConfigurationProperties in Spring Boot
Runnable vs. Callable in Java
New Features in Java 9
Spring Boot - Google OAuth2 Sign-In
Database Migrations with Flyway
Function trong Java 8
Java Program to Implement Stack
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence
Java Program to Represent Graph Using Incidence List
Testing in Spring Boot
Java Program to Check whether Undirected Graph is Connected using BFS
Java Program to Check Whether a Given Point is in a Given Polygon
Java Program to Implement Threaded Binary Tree
Spring Boot Configuration with Jasypt
Removing all duplicates from a List in Java
Java Program to Implement LinkedList API