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 Boot Configuration with Jasypt
Custom Thread Pools In Java 8 Parallel Streams
Java Program to Find Inverse of a Matrix
Validations for Enum Types
Adding Shutdown Hooks for JVM Applications
Java Program to Implement SimpeBindings API
LinkedHashSet trong java
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Guide to Escaping Characters in Java RegExps
The Java 8 Stream API Tutorial
Spring Security Custom AuthenticationFailureHandler
Implementing a Binary Tree in Java
Java Program to Check for balanced parenthesis by using Stacks
Introduction to Java 8 Streams
Mix plain text and HTML content in a mail
Spring Boot - Sending Email
Spring Security OAuth2 – Simple Token Revocation
Finding the Differences Between Two Lists in Java
Spring Security 5 for Reactive Applications
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Java Program to Check whether Undirected Graph is Connected using DFS
Life Cycle of a Thread in Java
Java Program to Check Whether Graph is DAG
Java Program to Implement Rope
Convert Time to Milliseconds in Java
Java Program to Implement Hamiltonian Cycle Algorithm
Java Program to Implement Sorted List
Java Program to Solve the 0-1 Knapsack Problem
Using JWT with Spring Security OAuth
Luồng Daemon (Daemon Thread) trong Java
HTTP Authentification and CGI/Servlet
Java Program to implement Bi Directional Map