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 REST API + OAuth2 + Angular
Guide to @JsonFormat in Jackson
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Spring Boot - File Handling
Spring Boot - Logging
Java Program to Perform Cryptography Using Transposition Technique
Java Switch Statement
Guide to java.util.concurrent.Locks
Spring Boot - Google OAuth2 Sign-In
Spring Web Annotations
Logging in Spring Boot
Java Program to Implement Bit Array
Java Program to implement Bi Directional Map
Functional Interfaces in Java 8
Java Program to Implement Cartesian Tree
Java Program to Implement Suffix Array
Chuyển đổi Array sang ArrayList và ngược lại
Send an email with an attachment
Java Program to Implement Knight’s Tour Problem
Validate email address exists or not by Java Code
ExecutorService – Waiting for Threads to Finish
Spring Boot - Servlet Filter
Removing Elements from Java Collections
Vòng lặp for, while, do-while trong Java
Interface trong Java 8 – Default method và Static method
Spring RestTemplate Request/Response Logging
Java Program to Implement Binary Tree
Adding a Newline Character to a String in Java
Java Program to Implement Ternary Search Algorithm
Spring Boot - Google Cloud Platform
Quick Guide to @RestClientTest in Spring Boot
Vector trong Java