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:
A Quick Guide to Using Keycloak with Spring Boot
Một số từ khóa trong Java
New Features in Java 8
Spring Web Annotations
Partition a List in Java
ArrayList trong java
Java Program to Implement Extended Euclid Algorithm
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Java Program to Find Whether a Path Exists Between 2 Given Nodes
Hướng dẫn Java Design Pattern – MVC
Spring Boot - Admin Client
Java – Convert File to InputStream
Getting Started with Stream Processing with Spring Cloud Data Flow
Request a Delivery / Read Receipt in Javamail
Spring Boot - Build Systems
Concatenating Strings In Java
Logging a Reactive Sequence
Tính đóng gói (Encapsulation) trong java
Java Program to Find a Good Feedback Vertex Set
Database Migrations with Flyway
Java Program to Perform Finite State Automaton based Search
Java Program to Implement HashTable API
Running Spring Boot Applications With Minikube
Spring MVC and the @ModelAttribute Annotation
Jackson Unmarshalling JSON with Unknown Properties
Debugging Reactive Streams in Java
Spring Security and OpenID Connect
SOAP Web service: Authentication trong JAX-WS
wait() and notify() Methods in Java
Sử dụng CyclicBarrier trong Java
Spring Data – CrudRepository save() Method
Java Program to Check Whether a Directed Graph Contains a Eulerian Path