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:
Sử dụng CountDownLatch trong Java
Spring Boot Change Context Path
Mockito and JUnit 5 – Using ExtendWith
Java Program to Implement Sparse Array
HttpClient Connection Management
Spring Boot - Sending Email
Spring RestTemplate Request/Response Logging
Java Program to Perform Cryptography Using Transposition Technique
Java Program to Find Second Smallest of n Elements with Given Complexity Constraint
Java Program to Implement Graph Coloring Algorithm
Java Program to Implement the MD5 Algorithm
Exploring the Spring Boot TestRestTemplate
Introduction to the Java NIO2 File API
Spring Boot - Code Structure
An Intro to Spring Cloud Task
Java Program to Implement Dijkstra’s Algorithm using Queue
Java Program to Implement Naor-Reingold Pseudo Random Function
Semaphore trong Java
Getting the Size of an Iterable in Java
Java Program to Implement the Edmond’s Algorithm for Maximum Cardinality Matching
Sử dụng CyclicBarrier trong Java
Lớp Collections trong Java (Collections Utility Class)
Performance Difference Between save() and saveAll() in Spring Data
Spring REST API + OAuth2 + Angular
Integer Constant Pool trong Java
Java Program to Compute the Volume of a Tetrahedron Using Determinants
A Guide To UDP In Java
Java Program to Implement Depth-limited Search
Mix plain text and HTML content in a mail
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Java Program to Find the GCD and LCM of two Numbers
Guide to CountDownLatch in Java