Friday, 17 November 2017

Java Program to Perform Partition of an Integer in All Possible Ways


Code:

//This is sample program to print a unique partitions of a given number
import java.util.Scanner;

public class Unique_Partitions_Number 
{
    public static void print(int[]p, int n)
    {
        for(int i=0; i
            System.out.print(p[i]+" ");
        System.out.println();
    }
    public static void generateUniquePartition(int n)
    {
        int []p = new int[n+n];
        int k = 0;
        p[k] = n;
        while(true)
        {
            print(p, k=1);
            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:

Unique Partitioning of a given number
Enter the number:
4


3 1
2 2
2 1 1
1 1 1 1


More Java Programs:













100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...