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:
Runnable vs. Callable in Java
Changing Annotation Parameters At Runtime
Java Program to Implement Queue using Linked List
Guide to BufferedReader
Java – Write to File
Spring Cloud Connectors and Heroku
Join and Split Arrays and Collections in Java
Java Program to Implement Dijkstra’s Algorithm using Priority Queue
Java 8 Stream findFirst() vs. findAny()
Java Program to Implement Sorted Vector
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Send an email with an attachment
Registration – Activate a New Account by Email
Exploring the New Spring Cloud Gateway
Java 8 – Powerful Comparison with Lambdas
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Xây dựng ứng dụng Client-Server với Socket trong Java
Guide to CountDownLatch in Java
Java Program to Implement Skew Heap
Compact Strings in Java 9
Sử dụng CyclicBarrier trong Java
Java Program to Solve any Linear Equations
Posting with HttpClient
Model, ModelMap, and ModelAndView in Spring MVC
Hướng dẫn Java Design Pattern – Facade
Java Program to Implement Weight Balanced Tree
Java Program to Implement RenderingHints API
Introduction to PCollections
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
Introduction to Java Serialization
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Intro to Spring Boot Starters