Monday, 27 November 2017

Java Program to Perform integer Partition for a Specific Case


Code:

import java.util.Scanner;

public class Integer_Partition 
{
    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];
        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("Partitioning of a given Integer such that every partition is unique");
        System.out.println("Enter the number:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        generateUniquePartition(n);
        sc.close();
    }

}



Output:

Partitioning of a given Integer such that every partition is unique
Enter the number:
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


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...