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:
Tính kế thừa (Inheritance) trong java
Java – Reader to String
Spring Cloud Connectors and Heroku
Java Program to Perform Search in a BST
Spring Boot - Actuator
Java Program to Implement Depth-limited Search
Jackson – Change Name of Field
OAuth 2.0 Resource Server With Spring Security 5
Calling Stored Procedures from Spring Data JPA Repositories
Java Program to Implement Coppersmith Freivald’s Algorithm
Kết hợp Java Reflection và Java Annotations
Introduction to Spring Data REST
Returning Custom Status Codes from Spring Controllers
RestTemplate Post Request with JSON
Working with Network Interfaces in Java
Serialization và Deserialization trong java
Guide to the Java Clock Class
Encode a String to UTF-8 in Java
Introduction to Netflix Archaius with Spring Cloud
Java Program to Solve a Matching Problem for a Given Specific Case
Find the Registered Spring Security Filters
Java Program to Find a Good Feedback Edge Set in a Graph
Java Program to Implement Best-First Search
Arrays.asList vs new ArrayList(Arrays.asList())
Java Program to Implement Bubble Sort
Chuyển đổi Array sang ArrayList và ngược lại
Java List UnsupportedOperationException
Toán tử trong java
Using a Spring Cloud App Starter
Quản lý bộ nhớ trong Java với Heap Space vs Stack
Lớp Arrarys trong Java (Arrays Utility Class)
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence