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:
Java Program to Find the Longest Path in a DAG
Java Program to Implement Word Wrap Problem
Java Program to Implement Skew Heap
Java Program to Find All Pairs Shortest Path
Remove All Occurrences of a Specific Value from a List
Java Program to Implement Queue using Linked List
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Spring Boot - Twilio
Debug a JavaMail Program
Collection trong java
Sắp xếp trong Java 8
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Java Program to Implement Gauss Jordan Elimination
Unsatisfied Dependency in Spring
Convert char to String in Java
Properties with Spring and Spring Boot
The DAO with Spring and Hibernate
ETL with Spring Cloud Data Flow
Java Program to Check whether Directed Graph is Connected using DFS
Tạo số và chuỗi ngẫu nhiên trong Java
Java Program to Describe the Representation of Graph using Adjacency List
Performance Difference Between save() and saveAll() in Spring Data
Servlet 3 Async Support with Spring MVC and Spring Security
Java – Byte Array to Reader
HTTP Authentification and CGI/Servlet
Spring REST API + OAuth2 + Angular
Spring Boot - Quick Start
HashSet trong java
Guide to java.util.concurrent.Locks
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Lớp Arrarys trong Java (Arrays Utility Class)