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:
Guide to ThreadLocalRandom in Java
Java Program to Implement Binary Heap
Spring Boot - Scheduling
Chương trình Java đầu tiên
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Adding Parameters to HttpClient Requests
Java Program to Implement Max Heap
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Comparing Objects in Java
The DAO with JPA and Spring
Java Program to Implement RenderingHints API
Spring Boot - Enabling HTTPS
How to Read HTTP Headers in Spring REST Controllers
Spring Security Registration – Resend Verification Email
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Spring Boot Integration Testing with Embedded MongoDB
Jackson vs Gson
Xử lý ngoại lệ trong Java (Exception Handling)
Java Program to Implement Hash Tables with Quadratic Probing
Concurrent Test Execution in Spring 5
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Wiring in Spring: @Autowired, @Resource and @Inject
Sorting in Java
Java Program to Create a Random Linear Extension for a DAG
Java Program to Implement the linear congruential generator for Pseudo Random Number Generation
Map Interface trong java
Binary Numbers in Java
An Intro to Spring Cloud Zookeeper
Login For a Spring Web App – Error Handling and Localization
Hướng dẫn Java Design Pattern – Facade
Spring Boot - Enabling Swagger2
Java Program to Implement K Way Merge Algorithm