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 Implement the MD5 Algorithm
Giới thiệu java.io.tmpdir
Apache Commons Collections MapUtils
Spring Boot - Admin Server
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Check if a String is a Palindrome in Java
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Java Program to Implement Quick Sort Using Randomization
Java Program to Find Basis and Dimension of a Matrix
Giới thiệu JDBC Connection Pool
HashMap trong Java hoạt động như thế nào?
Tính đóng gói (Encapsulation) trong java
Guide to the Java Clock Class
Guide to java.util.concurrent.Locks
Spring JDBC
XML-Based Injection in Spring
Using JWT with Spring Security OAuth (legacy stack)
Java Program to Implement Borwein Algorithm
Java Convenience Factory Methods for Collections
Java Program to Perform Search in a BST
Java Program to implement Priority Queue
JWT – Token-based Authentication trong Jersey 2.x
Java Program to Implement Lloyd’s Algorithm
Java Program to Check Cycle in a Graph using Graph traversal
Hướng dẫn sử dụng Printing Service trong Java
Spring Boot - Exception Handling
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Beans and Dependency Injection
Serve Static Resources with Spring
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Java Program to Represent Linear Equations in Matrix Form