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:
Quick Guide on Loading Initial Data with Spring Boot
Posting with HttpClient
Java Program to Implement Vector API
Guide to the Java TransferQueue
Java Program to Implement Network Flow Problem
How to Read HTTP Headers in Spring REST Controllers
Adding a Newline Character to a String in Java
Kiểu dữ liệu Ngày Giờ (Date Time) trong java
A Guide to JUnit 5 Extensions
Login For a Spring Web App – Error Handling and Localization
Java Program to Implement Heap
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Check if a String is a Palindrome in Java
Java Program to Implement Attribute API
@Lookup Annotation in Spring
Guide to Mustache with Spring Boot
String Operations with Java Streams
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Introduction to Java 8 Streams
Java Program for Douglas-Peucker Algorithm Implementation
Java Program to Implement the Program Used in grep/egrep/fgrep
Java – Write a Reader to File
Shuffling Collections In Java
Concurrent Test Execution in Spring 5
Java Program to Implement Stein GCD Algorithm
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Java Program to Perform Partial Key Search in a K-D Tree
Properties with Spring and Spring Boot
Spring Data JPA Delete and Relationships
A Guide to TreeSet in Java
Java Program to find the number of occurrences of a given number using Binary Search approach
Assertions in JUnit 4 and JUnit 5