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:
Extract links from an HTML page
Compact Strings in Java 9
Spring Security 5 for Reactive Applications
Concatenating Strings In Java
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
Java Program to Implement Selection Sort
Merging Streams in Java
ETL with Spring Cloud Data Flow
Java Program to Implement Weight Balanced Tree
Spring 5 Testing with @EnabledIf Annotation
Spring Boot - Cloud Configuration Server
More Jackson Annotations
New Features in Java 13
Java Program to Generate Randomized Sequence of Given Range of Numbers
Java Program to Implement IdentityHashMap API
A Guide to Java SynchronousQueue
Java Program to Implement TreeSet API
Java List UnsupportedOperationException
Java Program to Implement RoleUnresolvedList API
Spring Boot - Introduction
Guide to Java Instrumentation
Java Program to subtract two large numbers using Linked Lists
Properties with Spring and Spring Boot
Serverless Functions with Spring Cloud Function
Setting Up Swagger 2 with a Spring REST API
Send email with JavaMail
The Spring @Controller and @RestController Annotations
REST Web service: Tạo ứng dụng Java RESTful Client với Jersey Client 2.x
Java Concurrency Interview Questions and Answers
Java Program to Implement Knapsack Algorithm
Hướng dẫn Java Design Pattern – Strategy
A Guide to TreeMap in Java