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:
Java Program to Implement Range Tree
Guava CharMatcher
Spring Boot - Internationalization
Từ khóa throw và throws trong Java
RegEx for matching Date Pattern in Java
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Java Program to Implement Best-First Search
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Initialize a HashMap in Java
Java Program to Implement Pairing Heap
Lập trình mạng với java
Java Program to find the peak element of an array using Binary Search approach
Java Program to Check if it is a Sparse Matrix
Using a Spring Cloud App Starter
Jackson JSON Views
Spring Cloud AWS – EC2
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Intro to Spring Boot Starters
Java Program to Perform Quick Sort on Large Number of Elements
Spring Boot - CORS Support
Consuming RESTful Web Services
Java Program to Implement Sorted List
Spring Cloud Bus
Finding Max/Min of a List or Collection
Java Program to Implement the linear congruential generator for Pseudo Random Number Generation
Java Program to Check whether Graph is Biconnected
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Lập trình đa luồng với CompletableFuture trong Java 8
Working With Maps Using Streams
What is Thread-Safety and How to Achieve it?
Java Program to Implement Hash Tables chaining with Singly Linked Lists