Print all intervals of given number

Here given code implementation process.

// C Program 
// Print all intervals of given number
#include <stdio.h>

//  Display calculated intervals
void display(int auxiliary[], int size)
{
	for (int i = 0; i < size; ++i)
	{
		printf(" %d", auxiliary[i]);
	}
	printf("\n");
}
// Find the elements from 1 to n in specific intervals
void findIntervals(int auxiliary[], int element, int size, int n)
{
	if (element > n)
	{
		// Display calculated result
		display(auxiliary, size);
		return;
	}
	for (int i = 0; i < size; ++i)
	{
		if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0)
		{
			// Insert element on particular distance
			auxiliary[i] = element;
			auxiliary[i + element + 1] = element;
			findIntervals(auxiliary, element + 1, size, n);
			// Reset value
			auxiliary[i] = 0;
			auxiliary[i + element + 1] = 0;
		}
	}
}
// Handles the request of printing number intervals
void printIntervals(int intervals)
{
	if (intervals <= 1)
	{
		return;
	}
	printf("Intervals size %d \n", intervals);
	// Used to store results
	int auxiliary[intervals *2];
	for (int i = 0; i < intervals *2; ++i)
	{
		auxiliary[i] = 0;
	}
	//  print all intervals
	findIntervals(auxiliary, 1, intervals *2, intervals);
	printf("\n");
}
int main(int argc, char
	const *argv[])
{
	// Test case
	printIntervals(4);
	printIntervals(7);
	return 0;
}

Output

Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1
/*
   Java Program
   Print all intervals of given number
*/
class Interval
{
	//  Display calculated intervals
	public void display(int[] auxiliary, int size)
	{
		for (int i = 0; i < size; ++i)
		{
			System.out.print(" " + auxiliary[i]);
		}
		System.out.print("\n");
	}
	// Find the elements from 1 to n in specific intervals
	public void findIntervals(int[] auxiliary, int element, int size, int n)
	{
		if (element > n)
		{
			// Display calculated result
			display(auxiliary, size);
			return;
		}
		for (int i = 0; i < size; ++i)
		{
			if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0)
			{
				// Insert element on particular distance
				auxiliary[i] = element;
				auxiliary[i + element + 1] = element;
				findIntervals(auxiliary, element + 1, size, n);
				// Reset value
				auxiliary[i] = 0;
				auxiliary[i + element + 1] = 0;
			}
		}
	}
	// Handles the request of printing number intervals
	public void printIntervals(int intervals)
	{
		if (intervals <= 1)
		{
			return;
		}
		System.out.print(" Intervals size " + intervals + " \n");
		// Used to store results
		int[] auxiliary = new int[intervals * 2];
		for (int i = 0; i < intervals * 2; ++i)
		{
			auxiliary[i] = 0;
		}
		//  print all intervals
		findIntervals(auxiliary, 1, intervals * 2, intervals);
		System.out.print("\n");
	}
	public static void main(String[] args)
	{
		Interval task = new Interval();
		// Test case
		task.printIntervals(4);
		task.printIntervals(7);
	}
}

Output

 Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1
// Include header file
#include <iostream>

using namespace std;
/*
   C++ Program
   Print all intervals of given number
*/
class Interval
{
	public:
		//  Display calculated intervals
		void display(int auxiliary[], int size)
		{
			for (int i = 0; i < size; ++i)
			{
				cout << " " << auxiliary[i];
			}
			cout << "\n";
		}
	// Find the elements from 1 to n in specific intervals
	void findIntervals(int auxiliary[], int element, int size, int n)
	{
		if (element > n)
		{
			// Display calculated result
			this->display(auxiliary, size);
			return;
		}
		for (int i = 0; i < size; ++i)
		{
			if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0)
			{
				// Insert element on particular distance
				auxiliary[i] = element;
				auxiliary[i + element + 1] = element;
				this->findIntervals(auxiliary, element + 1, size, n);
				// Reset value
				auxiliary[i] = 0;
				auxiliary[i + element + 1] = 0;
			}
		}
	}
	// Handles the request of printing number intervals
	void printIntervals(int intervals)
	{
		if (intervals <= 1)
		{
			return;
		}
		cout << " Intervals size " << intervals << " \n";
		// Used to store results
		int auxiliary[intervals *2];
		for (int i = 0; i < intervals *2; ++i)
		{
			auxiliary[i] = 0;
		}
		//  print all intervals
		this->findIntervals(auxiliary, 1, intervals *2, intervals);
		cout << "\n";
	}
};
int main()
{
	Interval task = Interval();
	// Test case
	task.printIntervals(4);
	task.printIntervals(7);
	return 0;
}

Output

 Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1
// Include namespace system
using System;
/*
   C# Program
   Print all intervals of given number
*/
public class Interval
{
	//  Display calculated intervals
	public void display(int[] auxiliary, int size)
	{
		for (int i = 0; i < size; ++i)
		{
			Console.Write(" " + auxiliary[i]);
		}
		Console.Write("\n");
	}
	// Find the elements from 1 to n in specific intervals
	public void findIntervals(int[] auxiliary, int element, int size, int n)
	{
		if (element > n)
		{
			// Display calculated result
			display(auxiliary, size);
			return;
		}
		for (int i = 0; i < size; ++i)
		{
			if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0)
			{
				// Insert element on particular distance
				auxiliary[i] = element;
				auxiliary[i + element + 1] = element;
				findIntervals(auxiliary, element + 1, size, n);
				// Reset value
				auxiliary[i] = 0;
				auxiliary[i + element + 1] = 0;
			}
		}
	}
	// Handles the request of printing number intervals
	public void printIntervals(int intervals)
	{
		if (intervals <= 1)
		{
			return;
		}
		Console.Write(" Intervals size " + intervals + " \n");
		// Used to store results
		int[] auxiliary = new int[intervals * 2];
		for (int i = 0; i < intervals * 2; ++i)
		{
			auxiliary[i] = 0;
		}
		//  print all intervals
		findIntervals(auxiliary, 1, intervals * 2, intervals);
		Console.Write("\n");
	}
	public static void Main(String[] args)
	{
		Interval task = new Interval();
		// Test case
		task.printIntervals(4);
		task.printIntervals(7);
	}
}

Output

 Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1
<?php
/*
   Php Program
   Print all intervals of given number
*/
class Interval
{
	//  Display calculated intervals
	public	function display( & $auxiliary, $size)
	{
		for ($i = 0; $i < $size; ++$i)
		{
			echo " ". $auxiliary[$i];
		}
		echo "\n";
	}
	// Find the elements from 1 to n in specific intervals
	public	function findIntervals( & $auxiliary, $element, $size, $n)
	{
		if ($element > $n)
		{
			// Display calculated result
			$this->display($auxiliary, $size);
			return;
		}
		for ($i = 0; $i < $size; ++$i)
		{
			if ($auxiliary[$i] == 0 && $i + $element + 1 < $size && $auxiliary[$i + $element + 1] == 0)
			{
				// Insert element on particular distance
				$auxiliary[$i] = $element;
				$auxiliary[$i + $element + 1] = $element;
				$this->findIntervals($auxiliary, $element + 1, $size, $n);
				// Reset value
				$auxiliary[$i] = 0;
				$auxiliary[$i + $element + 1] = 0;
			}
		}
	}
	// Handles the request of printing number intervals
	public	function printIntervals($intervals)
	{
		if ($intervals <= 1)
		{
			return;
		}
		echo " Intervals size ". $intervals ." \n";
		// Used to store results
		$auxiliary = array_fill(0, $intervals * 2, 0);
		for ($i = 0; $i < $intervals * 2; ++$i)
		{
			$auxiliary[$i] = 0;
		}
		//  print all intervals
		$this->findIntervals($auxiliary, 1, $intervals * 2, $intervals);
		echo "\n";
	}
}

function main()
{
	$task = new Interval();
	// Test case
	$task->printIntervals(4);
	$task->printIntervals(7);
}
main();

Output

 Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1
/*
   Node Js Program
   Print all intervals of given number
*/
class Interval
{
	//  Display calculated intervals
	display(auxiliary, size)
	{
		for (var i = 0; i < size; ++i)
		{
			process.stdout.write(" " + auxiliary[i]);
		}
		process.stdout.write("\n");
	}
	// Find the elements from 1 to n in specific intervals
	findIntervals(auxiliary, element, size, n)
	{
		if (element > n)
		{
			// Display calculated result
			this.display(auxiliary, size);
			return;
		}
		for (var i = 0; i < size; ++i)
		{
			if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0)
			{
				// Insert element on particular distance
				auxiliary[i] = element;
				auxiliary[i + element + 1] = element;
				this.findIntervals(auxiliary, element + 1, size, n);
				// Reset value
				auxiliary[i] = 0;
				auxiliary[i + element + 1] = 0;
			}
		}
	}
	// Handles the request of printing number intervals
	printIntervals(intervals)
	{
		if (intervals <= 1)
		{
			return;
		}
		process.stdout.write(" Intervals size " + intervals + " \n");
		// Used to store results
		var auxiliary = Array(intervals * 2).fill(0);
		for (var i = 0; i < intervals * 2; ++i)
		{
			auxiliary[i] = 0;
		}
		//  print all intervals
		this.findIntervals(auxiliary, 1, intervals * 2, intervals);
		process.stdout.write("\n");
	}
}

function main()
{
	var task = new Interval();
	// Test case
	task.printIntervals(4);
	task.printIntervals(7);
}
main();

Output

 Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1
#    Python 3 Program
#    Print all intervals of given number

class Interval :
	#   Display calculated intervals
	def display(self, auxiliary, size) :
		i = 0
		while (i < size) :
			print(" ", auxiliary[i], end = "")
			i += 1
		
		print(end = "\n")
	
	#  Find the elements from 1 to n in specific intervals
	def findIntervals(self, auxiliary, element, size, n) :
		if (element > n) :
			#  Display calculated result
			self.display(auxiliary, size)
			return
		
		i = 0
		while (i < size) :
			if (auxiliary[i] == 0 and i + element + 1 < size and auxiliary[i + element + 1] == 0) :
				#  Insert element on particular distance
				auxiliary[i] = element
				auxiliary[i + element + 1] = element
				self.findIntervals(auxiliary, element + 1, size, n)
				#  Reset value
				auxiliary[i] = 0
				auxiliary[i + element + 1] = 0
			
			i += 1
		
	
	#  Handles the request of printing number intervals
	def printIntervals(self, intervals) :
		if (intervals <= 1) :
			return
		
		print(" Intervals size ", intervals ," ")
		#  Used to store results
		auxiliary = [0] * (intervals * 2)
		#   print all intervals
		self.findIntervals(auxiliary, 1, intervals * 2, intervals)
		print(end = "\n")
	

def main() :
	task = Interval()
	#  Test case
	task.printIntervals(4)
	task.printIntervals(7)

if __name__ == "__main__": main()

Output

 Intervals size  4
  4  1  3  1  2  4  3  2
  2  3  4  2  1  3  1  4

 Intervals size  7
  1  7  1  2  5  6  2  3  4  7  5  3  6  4
  1  7  1  2  6  4  2  5  3  7  4  6  3  5
  1  6  1  7  2  4  5  2  6  3  4  7  5  3
  1  5  1  6  7  2  4  5  2  3  6  4  7  3
  1  4  1  5  6  7  4  2  3  5  2  6  3  7
  1  4  1  6  7  3  4  5  2  3  6  2  7  5
  1  6  1  3  5  7  4  3  6  2  5  4  2  7
  1  5  1  7  3  4  6  5  3  2  4  7  2  6
  1  5  1  6  3  7  4  5  3  2  6  4  2  7
  1  5  1  4  6  7  3  5  4  2  3  6  2  7
  5  1  7  1  6  2  5  4  2  3  7  6  4  3
  4  1  7  1  6  4  2  5  3  2  7  6  3  5
  4  1  6  1  7  4  3  5  2  6  3  2  7  5
  7  1  3  1  6  4  3  5  7  2  4  6  2  5
  7  1  4  1  6  3  5  4  7  3  2  6  5  2
  6  1  5  1  7  3  4  6  5  3  2  4  7  2
  4  6  1  7  1  4  5  2  6  3  2  7  5  3
  7  3  1  6  1  3  4  5  7  2  6  4  2  5
  4  6  1  7  1  4  3  5  6  2  3  7  2  5
  5  6  1  7  1  3  5  4  6  3  2  7  4  2
  7  4  1  5  1  6  4  3  7  5  2  3  6  2
  5  7  1  4  1  6  5  3  4  7  2  3  6  2
  3  6  7  1  3  1  4  5  6  2  7  4  2  5
  5  7  4  1  6  1  5  4  3  7  2  6  3  2
  2  6  7  2  1  5  1  4  6  3  7  5  4  3
  4  5  6  7  1  4  1  5  3  6  2  7  3  2
  2  3  7  2  6  3  5  1  4  1  7  6  5  4
  3  4  5  7  3  6  4  1  5  1  2  7  6  2
  2  3  6  2  7  3  4  5  1  6  1  4  7  5
  5  2  4  7  2  6  5  4  1  3  1  7  6  3
  2  6  3  2  7  4  3  5  6  1  4  1  7  5
  2  6  3  2  5  7  3  4  6  1  5  1  4  7
  2  4  7  2  3  6  4  5  3  1  7  1  6  5
  5  2  7  3  2  6  5  3  4  1  7  1  6  4
  5  2  4  6  2  7  5  4  3  1  6  1  3  7
  3  5  7  2  3  6  2  5  4  1  7  1  6  4
  2  7  4  2  3  5  6  4  3  7  1  5  1  6
  2  5  6  2  3  7  4  5  3  6  1  4  1  7
  5  2  6  4  2  7  5  3  4  6  1  3  1  7
  5  7  2  3  6  2  5  3  4  7  1  6  1  4
  5  3  6  7  2  3  5  2  4  6  1  7  1  4
  3  4  6  7  3  2  4  5  2  6  1  7  1  5
  7  2  6  3  2  4  5  3  7  6  4  1  5  1
  7  2  4  6  2  3  5  4  7  3  6  1  5  1
  6  2  7  4  2  3  5  6  4  3  7  1  5  1
  7  2  4  5  2  6  3  4  7  5  3  1  6  1
  5  7  2  6  3  2  5  4  3  7  6  1  4  1
  7  3  6  2  5  3  2  4  7  6  5  1  4  1
  3  7  4  6  3  2  5  4  2  7  6  1  5  1
  3  5  7  4  3  6  2  5  4  2  7  1  6  1
  5  3  6  4  7  3  5  2  4  6  2  1  7  1
  4  6  3  5  7  4  3  2  6  5  2  1  7  1
#    Ruby Program
#    Print all intervals of given number

class Interval 
	#   Display calculated intervals
	def display(auxiliary, size) 
		i = 0
		while (i < size) 
			print(" ", auxiliary[i])
			i += 1
		end

		print("\n")
	end

	#  Find the elements from 1 to n in specific intervals
	def findIntervals(auxiliary, element, size, n) 
		if (element > n) 
			#  Display calculated result
			self.display(auxiliary, size)
			return
		end

		i = 0
		while (i < size) 
			if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0) 
				#  Insert element on particular distance
				auxiliary[i] = element
				auxiliary[i + element + 1] = element
				self.findIntervals(auxiliary, element + 1, size, n)
				#  Reset value
				auxiliary[i] = 0
				auxiliary[i + element + 1] = 0
			end

			i += 1
		end

	end

	#  Handles the request of printing number intervals
	def printIntervals(intervals) 
		if (intervals <= 1) 
			return
		end

		print(" Intervals size ", intervals ," \n")
		#  Used to store results
		auxiliary = Array.new(intervals * 2) {0}
		#   print all intervals
		self.findIntervals(auxiliary, 1, intervals * 2, intervals)
		print("\n")
	end

end

def main() 
	task = Interval.new()
	#  Test case
	task.printIntervals(4)
	task.printIntervals(7)
end

main()

Output

 Intervals size 4 
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7 
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1

/*
   Scala Program
   Print all intervals of given number
*/
class Interval
{
	//  Display calculated intervals
	def display(auxiliary: Array[Int], size: Int): Unit = {
		var i: Int = 0;
		while (i < size)
		{
			print(" " + auxiliary(i));
			i += 1;
		}
		print("\n");
	}
	// Find the elements from 1 to n in specific intervals
	def findIntervals(auxiliary: Array[Int], element: Int, size: Int, n: Int): Unit = {
		if (element > n)
		{
			// Display calculated result
			this.display(auxiliary, size);
			return;
		}
		var i: Int = 0;
		while (i < size)
		{
			if (auxiliary(i) == 0 && i + element + 1 < size && auxiliary(i + element + 1) == 0)
			{
				// Insert element on particular distance
				auxiliary(i) = element;
				auxiliary(i + element + 1) = element;
				this.findIntervals(auxiliary, element + 1, size, n);
				// Reset value
				auxiliary(i) = 0;
				auxiliary(i + element + 1) = 0;
			}
			i += 1;
		}
	}
	// Handles the request of printing number intervals
	def printIntervals(intervals: Int): Unit = {
		if (intervals <= 1)
		{
			return;
		}
		print(" Intervals size " + intervals + " \n");
		// Used to store results
		var auxiliary: Array[Int] = Array.fill[Int](intervals * 2)(0);
		//  print all intervals
		this.findIntervals(auxiliary, 1, intervals * 2, intervals);
		print("\n");
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Interval = new Interval();
		// Test case
		task.printIntervals(4);
		task.printIntervals(7);
	}
}

Output

 Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1
/*
   Swift 4 Program
   Print all intervals of given number
*/
class Interval
{
	//  Display calculated intervals
	func display(_ auxiliary: [Int], _ size: Int)
	{
		var i: Int = 0;
		while (i < size)
		{
			print(" ", auxiliary[i], terminator: "");
			i += 1;
		}
		print(terminator: "\n");
	}
	// Find the elements from 1 to n in specific intervals
	func findIntervals(_ auxiliary: inout[Int], _ element: Int, _ size: Int, _ n: Int)
	{
		if (element > n)
		{
			// Display calculated result
			self.display(auxiliary, size);
			return;
		}
		var i: Int = 0;
		while (i < size)
		{
			if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0)
			{
				// Insert element on particular distance
				auxiliary[i] = element;
				auxiliary[i + element + 1] = element;
				self.findIntervals(&auxiliary, element + 1, size, n);
				// Reset value
				auxiliary[i] = 0;
				auxiliary[i + element + 1] = 0;
			}
			i += 1;
		}
	}
	// Handles the request of printing number intervals
	func printIntervals(_ intervals: Int)
	{
		if (intervals <= 1)
		{
			return;
		}
		print(" Intervals size ", intervals ," ");
		// Used to store results
		var auxiliary: [Int] = Array(repeating: 0, count: intervals * 2);
		//  print all intervals
		self.findIntervals(&auxiliary, 1, intervals * 2, intervals);
		print(terminator: "\n");
	}
}
func main()
{
	let task: Interval = Interval();
	// Test case
	task.printIntervals(4);
	task.printIntervals(7);
}
main();

Output

 Intervals size  4
  4  1  3  1  2  4  3  2
  2  3  4  2  1  3  1  4

 Intervals size  7
  1  7  1  2  5  6  2  3  4  7  5  3  6  4
  1  7  1  2  6  4  2  5  3  7  4  6  3  5
  1  6  1  7  2  4  5  2  6  3  4  7  5  3
  1  5  1  6  7  2  4  5  2  3  6  4  7  3
  1  4  1  5  6  7  4  2  3  5  2  6  3  7
  1  4  1  6  7  3  4  5  2  3  6  2  7  5
  1  6  1  3  5  7  4  3  6  2  5  4  2  7
  1  5  1  7  3  4  6  5  3  2  4  7  2  6
  1  5  1  6  3  7  4  5  3  2  6  4  2  7
  1  5  1  4  6  7  3  5  4  2  3  6  2  7
  5  1  7  1  6  2  5  4  2  3  7  6  4  3
  4  1  7  1  6  4  2  5  3  2  7  6  3  5
  4  1  6  1  7  4  3  5  2  6  3  2  7  5
  7  1  3  1  6  4  3  5  7  2  4  6  2  5
  7  1  4  1  6  3  5  4  7  3  2  6  5  2
  6  1  5  1  7  3  4  6  5  3  2  4  7  2
  4  6  1  7  1  4  5  2  6  3  2  7  5  3
  7  3  1  6  1  3  4  5  7  2  6  4  2  5
  4  6  1  7  1  4  3  5  6  2  3  7  2  5
  5  6  1  7  1  3  5  4  6  3  2  7  4  2
  7  4  1  5  1  6  4  3  7  5  2  3  6  2
  5  7  1  4  1  6  5  3  4  7  2  3  6  2
  3  6  7  1  3  1  4  5  6  2  7  4  2  5
  5  7  4  1  6  1  5  4  3  7  2  6  3  2
  2  6  7  2  1  5  1  4  6  3  7  5  4  3
  4  5  6  7  1  4  1  5  3  6  2  7  3  2
  2  3  7  2  6  3  5  1  4  1  7  6  5  4
  3  4  5  7  3  6  4  1  5  1  2  7  6  2
  2  3  6  2  7  3  4  5  1  6  1  4  7  5
  5  2  4  7  2  6  5  4  1  3  1  7  6  3
  2  6  3  2  7  4  3  5  6  1  4  1  7  5
  2  6  3  2  5  7  3  4  6  1  5  1  4  7
  2  4  7  2  3  6  4  5  3  1  7  1  6  5
  5  2  7  3  2  6  5  3  4  1  7  1  6  4
  5  2  4  6  2  7  5  4  3  1  6  1  3  7
  3  5  7  2  3  6  2  5  4  1  7  1  6  4
  2  7  4  2  3  5  6  4  3  7  1  5  1  6
  2  5  6  2  3  7  4  5  3  6  1  4  1  7
  5  2  6  4  2  7  5  3  4  6  1  3  1  7
  5  7  2  3  6  2  5  3  4  7  1  6  1  4
  5  3  6  7  2  3  5  2  4  6  1  7  1  4
  3  4  6  7  3  2  4  5  2  6  1  7  1  5
  7  2  6  3  2  4  5  3  7  6  4  1  5  1
  7  2  4  6  2  3  5  4  7  3  6  1  5  1
  6  2  7  4  2  3  5  6  4  3  7  1  5  1
  7  2  4  5  2  6  3  4  7  5  3  1  6  1
  5  7  2  6  3  2  5  4  3  7  6  1  4  1
  7  3  6  2  5  3  2  4  7  6  5  1  4  1
  3  7  4  6  3  2  5  4  2  7  6  1  5  1
  3  5  7  4  3  6  2  5  4  2  7  1  6  1
  5  3  6  4  7  3  5  2  4  6  2  1  7  1
  4  6  3  5  7  4  3  2  6  5  2  1  7  1
/*
   Kotlin Program
   Print all intervals of given number
*/
class Interval
{
	//  Display calculated intervals
	fun display(auxiliary: Array<Int> , size: Int): Unit
	{
		var i: Int = 0;
		while (i < size)
		{
			print(" " + auxiliary[i]);
			i += 1;
		}
		print("\n");
	}
	// Find the elements from 1 to n in specific intervals
	fun findIntervals(auxiliary: Array<Int> , element: Int, size: Int, n: Int): Unit
	{
		if (element > n)
		{
			// Display calculated result
			this.display(auxiliary, size);
			return;
		}
		var i: Int = 0;
		while (i < size)
		{
			if (auxiliary[i] == 0 && i + element + 1 < size && auxiliary[i + element + 1] == 0)
			{
				// Insert element on particular distance
				auxiliary[i] = element;
				auxiliary[i + element + 1] = element;
				this.findIntervals(auxiliary, element + 1, size, n);
				// Reset value
				auxiliary[i] = 0;
				auxiliary[i + element + 1] = 0;
			}
			i += 1;
		}
	}
	// Handles the request of printing number intervals
	fun printIntervals(intervals: Int): Unit
	{
		if (intervals <= 1)
		{
			return;
		}
		print(" Intervals size " + intervals + " \n");
		// Used to store results
		var auxiliary: Array < Int > = Array(intervals * 2)
		{
			0
		};
		//  print all intervals
		this.findIntervals(auxiliary, 1, intervals * 2, intervals);
		print("\n");
	}
}
fun main(args: Array < String > ): Unit
{
	var task: Interval = Interval();
	// Test case
	task.printIntervals(4);
	task.printIntervals(7);
}

Output

 Intervals size 4
 4 1 3 1 2 4 3 2
 2 3 4 2 1 3 1 4

 Intervals size 7
 1 7 1 2 5 6 2 3 4 7 5 3 6 4
 1 7 1 2 6 4 2 5 3 7 4 6 3 5
 1 6 1 7 2 4 5 2 6 3 4 7 5 3
 1 5 1 6 7 2 4 5 2 3 6 4 7 3
 1 4 1 5 6 7 4 2 3 5 2 6 3 7
 1 4 1 6 7 3 4 5 2 3 6 2 7 5
 1 6 1 3 5 7 4 3 6 2 5 4 2 7
 1 5 1 7 3 4 6 5 3 2 4 7 2 6
 1 5 1 6 3 7 4 5 3 2 6 4 2 7
 1 5 1 4 6 7 3 5 4 2 3 6 2 7
 5 1 7 1 6 2 5 4 2 3 7 6 4 3
 4 1 7 1 6 4 2 5 3 2 7 6 3 5
 4 1 6 1 7 4 3 5 2 6 3 2 7 5
 7 1 3 1 6 4 3 5 7 2 4 6 2 5
 7 1 4 1 6 3 5 4 7 3 2 6 5 2
 6 1 5 1 7 3 4 6 5 3 2 4 7 2
 4 6 1 7 1 4 5 2 6 3 2 7 5 3
 7 3 1 6 1 3 4 5 7 2 6 4 2 5
 4 6 1 7 1 4 3 5 6 2 3 7 2 5
 5 6 1 7 1 3 5 4 6 3 2 7 4 2
 7 4 1 5 1 6 4 3 7 5 2 3 6 2
 5 7 1 4 1 6 5 3 4 7 2 3 6 2
 3 6 7 1 3 1 4 5 6 2 7 4 2 5
 5 7 4 1 6 1 5 4 3 7 2 6 3 2
 2 6 7 2 1 5 1 4 6 3 7 5 4 3
 4 5 6 7 1 4 1 5 3 6 2 7 3 2
 2 3 7 2 6 3 5 1 4 1 7 6 5 4
 3 4 5 7 3 6 4 1 5 1 2 7 6 2
 2 3 6 2 7 3 4 5 1 6 1 4 7 5
 5 2 4 7 2 6 5 4 1 3 1 7 6 3
 2 6 3 2 7 4 3 5 6 1 4 1 7 5
 2 6 3 2 5 7 3 4 6 1 5 1 4 7
 2 4 7 2 3 6 4 5 3 1 7 1 6 5
 5 2 7 3 2 6 5 3 4 1 7 1 6 4
 5 2 4 6 2 7 5 4 3 1 6 1 3 7
 3 5 7 2 3 6 2 5 4 1 7 1 6 4
 2 7 4 2 3 5 6 4 3 7 1 5 1 6
 2 5 6 2 3 7 4 5 3 6 1 4 1 7
 5 2 6 4 2 7 5 3 4 6 1 3 1 7
 5 7 2 3 6 2 5 3 4 7 1 6 1 4
 5 3 6 7 2 3 5 2 4 6 1 7 1 4
 3 4 6 7 3 2 4 5 2 6 1 7 1 5
 7 2 6 3 2 4 5 3 7 6 4 1 5 1
 7 2 4 6 2 3 5 4 7 3 6 1 5 1
 6 2 7 4 2 3 5 6 4 3 7 1 5 1
 7 2 4 5 2 6 3 4 7 5 3 1 6 1
 5 7 2 6 3 2 5 4 3 7 6 1 4 1
 7 3 6 2 5 3 2 4 7 6 5 1 4 1
 3 7 4 6 3 2 5 4 2 7 6 1 5 1
 3 5 7 4 3 6 2 5 4 2 7 1 6 1
 5 3 6 4 7 3 5 2 4 6 2 1 7 1
 4 6 3 5 7 4 3 2 6 5 2 1 7 1


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved