Skip to main content

Generate all cyclic permutations of a number

Here given code implementation process.

/*
  C Program 
  Generate all cyclic permutations of a number
*/
#include <stdio.h>

// Get number multiplier to permutations
int multiplier(int num)
{
	int ans = 0;
	while (num != 0)
	{
		if (ans == 0)
		{
			ans = 1;
		}
		else
		{
			ans = ans *10;
		}
		num /= 10;
	}
	return ans;
}
// Find all cyclic permutations in number form
void permutation(int num, int actual, int multiply)
{
	printf(" %d\n", num);
	int next = (num % 10) *multiply + (num / 10);
	if (next != actual)
	{
		permutation(next, actual, multiply);
	}
}
// Handles the request of finding cyclic Permutation
void cyclicPermutations(int num)
{
	if (num < 0)
	{
		// When number is less then zero
		return;
	}
	int multiply = multiplier(num);
	printf("\n Cyclic Permutation Of Number %d are \n", num);
	permutation(num, num, multiply);
}
int main()
{
	// Test
	cyclicPermutations(76832);
	cyclicPermutations(123456);
	cyclicPermutations(420);
	return 0;
}

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204
/*
  Java Program
  Generate all cyclic permutations of a number
*/
class Permutations
{
	// Get number multiplier to permutations
	public int multiplier(int num)
	{
		int ans = 0;
		while (num != 0)
		{
			if (ans == 0)
			{
				ans = 1;
			}
			else
			{
				ans = ans * 10;
			}
			num /= 10;
		}
		return ans;
	}
	// Find all cyclic permutations in number form
	public void permutation(int num, int actual, int multiply)
	{
		System.out.print(" " + num + "\n");
		int next = (num % 10) * multiply + (num / 10);
		if (next != actual)
		{
			permutation(next, actual, multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	public void cyclicPermutations(int num)
	{
		if (num < 0)
		{
			// When number is less then zero
			return;
		}
		int multiply = multiplier(num);
		System.out.print("\n Cyclic Permutation Of Number " + num + " are \n");
		permutation(num, num, multiply);
	}
	public static void main(String[] args)
	{
		Permutations task = new Permutations();
		// Test
		task.cyclicPermutations(76832);
		task.cyclicPermutations(123456);
		task.cyclicPermutations(420);
	}
}

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204
// Include header file
#include <iostream>
using namespace std;
/*
  C++ Program
  Generate all cyclic permutations of a number
*/
class Permutations
{
	public:
		// Get number multiplier to permutations
		int multiplier(int num)
		{
			int ans = 0;
			while (num != 0)
			{
				if (ans == 0)
				{
					ans = 1;
				}
				else
				{
					ans = ans *10;
				}
				num /= 10;
			}
			return ans;
		}
	// Find all cyclic permutations in number form
	void permutation(int num, int actual, int multiply)
	{
		cout << " " << num << "\n";
		int next = (num % 10) *multiply + (num / 10);
		if (next != actual)
		{
			this->permutation(next, actual, multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	void cyclicPermutations(int num)
	{
		// When number is less then zero
		if (num < 0)
		{
			return;
		}
		int multiply = this->multiplier(num);
		cout << "\n Cyclic Permutation Of Number " << num << " are \n";
		this->permutation(num, num, multiply);
	}
};
int main()
{
	Permutations task = Permutations();
	// Test
	task.cyclicPermutations(76832);
	task.cyclicPermutations(123456);
	task.cyclicPermutations(420);
	return 0;
}

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204
// Include namespace system
using System;
/*
  C# Program
  Generate all cyclic permutations of a number
*/
public class Permutations
{
	// Get number multiplier to permutations
	public int multiplier(int num)
	{
		int ans = 0;
		while (num != 0)
		{
			if (ans == 0)
			{
				ans = 1;
			}
			else
			{
				ans = ans * 10;
			}
			num /= 10;
		}
		return ans;
	}
	// Find all cyclic permutations in number form
	public void permutation(int num, int actual, int multiply)
	{
		Console.Write(" " + num + "\n");
		int next = (num % 10) * multiply + (num / 10);
		if (next != actual)
		{
			permutation(next, actual, multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	public void cyclicPermutations(int num)
	{
		// When number is less then zero
		if (num < 0)
		{
			return;
		}
		int multiply = multiplier(num);
		Console.Write("\n Cyclic Permutation Of Number " + num + " are \n");
		permutation(num, num, multiply);
	}
	public static void Main(String[] args)
	{
		Permutations task = new Permutations();
		// Test
		task.cyclicPermutations(76832);
		task.cyclicPermutations(123456);
		task.cyclicPermutations(420);
	}
}

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204
<?php
/*
  Php Program
  Generate all cyclic permutations of a number
*/
class Permutations
{
	// Get number multiplier to permutations
	public	function multiplier($num)
	{
		$ans = 0;
		while ($num != 0)
		{
			if ($ans == 0)
			{
				$ans = 1;
			}
			else
			{
				$ans = $ans * 10;
			}
			$num = intval($num / 10);
		}
		return $ans;
	}
	// Find all cyclic permutations in number form
	public	function permutation($num, $actual, $multiply)
	{
		echo " ". $num ."\n";
		$next = ($num % 10) * $multiply + (intval($num / 10));
		if ($next != $actual)
		{
			$this->permutation($next, $actual, $multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	public	function cyclicPermutations($num)
	{
		// When number is less then zero
		if ($num < 0)
		{
			return;
		}
		$multiply = $this->multiplier($num);
		echo "\n Cyclic Permutation Of Number ". $num ." are \n";
		$this->permutation($num, $num, $multiply);
	}
}

function main()
{
	$task = new Permutations();
	// Test
	$task->cyclicPermutations(76832);
	$task->cyclicPermutations(123456);
	$task->cyclicPermutations(420);
}
main();

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204
/*
  Node Js Program
  Generate all cyclic permutations of a number
*/
class Permutations
{
	// Get number multiplier to permutations
	multiplier(num)
	{
		var ans = 0;
		while (num != 0)
		{
			if (ans == 0)
			{
				ans = 1;
			}
			else
			{
				ans = ans * 10;
			}
			num = parseInt(num / 10);
		}
		return ans;
	}
	// Find all cyclic permutations in number form
	permutation(num, actual, multiply)
	{
		process.stdout.write(" " + num + "\n");
		var next = (num % 10) * multiply + (parseInt(num / 10));
		if (next != actual)
		{
			this.permutation(next, actual, multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	cyclicPermutations(num)
	{
		// When number is less then zero
		if (num < 0)
		{
			return;
		}
		var multiply = this.multiplier(num);
		process.stdout.write("\n Cyclic Permutation Of Number " + num + " are \n");
		this.permutation(num, num, multiply);
	}
}

function main()
{
	var task = new Permutations();
	// Test
	task.cyclicPermutations(76832);
	task.cyclicPermutations(123456);
	task.cyclicPermutations(420);
}
main();

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204
#   Python 3 Program
#   Generate all cyclic permutations of a number

class Permutations :
	#  Get number multiplier to permutations
	def multiplier(self, num) :
		ans = 0
		while (num != 0) :
			if (ans == 0) :
				ans = 1
			else :
				ans = ans * 10
			
			num = int(num / 10)
		
		return ans
	
	#  Find all cyclic permutations in number form
	def permutation(self, num, actual, multiply) :
		print(" ", num )
		next = (num % 10) * multiply + (int(num / 10))
		if (next != actual) :
			self.permutation(next, actual, multiply)
		
	
	#  Handles the request of finding cyclic Permutation
	def cyclicPermutations(self, num) :
		if (num < 0) :
			#  When number is less then zero
			return
		
		multiply = self.multiplier(num)
		print("\n Cyclic Permutation Of Number ", num ," are ")
		self.permutation(num, num, multiply)
	

def main() :
	task = Permutations()
	#  Test
	task.cyclicPermutations(76832)
	task.cyclicPermutations(123456)
	task.cyclicPermutations(420)

if __name__ == "__main__": main()

Output

 Cyclic Permutation Of Number  76832  are
  76832
  27683
  32768
  83276
  68327

 Cyclic Permutation Of Number  123456  are
  123456
  612345
  561234
  456123
  345612
  234561

 Cyclic Permutation Of Number  420  are
  420
  42
  204
#   Ruby Program
#   Generate all cyclic permutations of a number

class Permutations 
	#  Get number multiplier to permutations
	def multiplier(num) 
		ans = 0
		while (num != 0) 
			if (ans == 0) 
				ans = 1
			else 
				ans = ans * 10
			end

			num /= 10
		end

		return ans
	end

	#  Find all cyclic permutations in number form
	def permutation(num, actual, multiply) 
		print(" ", num ,"\n")
		nextNum = (num % 10) * multiply + (num / 10)
		if (nextNum != actual) 
			self.permutation(nextNum, actual, multiply)
		end

	end

	#  Handles the request of finding cyclic Permutation
	def cyclicPermutations(num) 
		if (num < 0) 
			#  When number is less then zero
			return
		end

		multiply = self.multiplier(num)
		print("\n Cyclic Permutation Of Number ", num ," are \n")
		self.permutation(num, num, multiply)
	end

end

def main() 
	task = Permutations.new()
	#  Test
	task.cyclicPermutations(76832)
	task.cyclicPermutations(123456)
	task.cyclicPermutations(420)
end

main()

Output

 Cyclic Permutation Of Number 76832 are 
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are 
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are 
 420
 42
 204
/*
  Scala Program
  Generate all cyclic permutations of a number
*/
class Permutations
{
	// Get number multiplier to permutations
	def multiplier(num: Int): Int = {
      	var n = num;
		var ans: Int = 0;
		while (n != 0)
		{
			if (ans == 0)
			{
				ans = 1;
			}
			else
			{
				ans = ans * 10;
			}
			n = (n / 10).toInt;
		}
		return ans;
	}
	// Find all cyclic permutations in number form
	def permutation(num: Int, actual: Int, multiply: Int): Unit = {
		print(" " + num + "\n");
		var next: Int = (num % 10) * multiply + ((num / 10).toInt);
		if (next != actual)
		{
			this.permutation(next, actual, multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	def cyclicPermutations(num: Int): Unit = {
		// When number is less then zero
		if (num < 0)
		{
			return;
		}
		var multiply: Int = this.multiplier(num);
		print("\n Cyclic Permutation Of Number " + num + " are \n");
		this.permutation(num, num, multiply);
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Permutations = new Permutations();
		// Test
		task.cyclicPermutations(76832);
		task.cyclicPermutations(123456);
		task.cyclicPermutations(420);
	}
}

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204
/*
  Swift 4 Program
  Generate all cyclic permutations of a number
*/
class Permutations
{
	// Get number multiplier to permutations
	func multiplier(_ num: Int)->Int
	{	var n  = num;
		var ans: Int = 0;
		while (n  != 0)
		{
			if (ans == 0)
			{
				ans = 1;
			}
			else
			{
				ans = ans * 10;
			}
			n /= 10;
		}
		return ans;
	}
	// Find all cyclic permutations in number form
	func permutation(_ num: Int, _ actual: Int, _ multiply: Int)
	{
		print(" ", num );
		let next: Int = (num % 10) * multiply + (num / 10);
		if (next  != actual)
		{
			self.permutation(next, actual, multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	func cyclicPermutations(_ num: Int)
	{
		// When number is less then zero
		if (num < 0)
		{
			return;
		}
		let multiply: Int = self.multiplier(num);
		print("\n Cyclic Permutation Of Number ", num ," are ");
		self.permutation(num, num, multiply);
	}
}
func main()
{
	let task: Permutations = Permutations();
	// Test
	task.cyclicPermutations(76832);
	task.cyclicPermutations(123456);
	task.cyclicPermutations(420);
}
main();

Output

 Cyclic Permutation Of Number  76832  are
  76832
  27683
  32768
  83276
  68327

 Cyclic Permutation Of Number  123456  are
  123456
  612345
  561234
  456123
  345612
  234561

 Cyclic Permutation Of Number  420  are
  420
  42
  204
/*
  Kotlin Program
  Generate all cyclic permutations of a number
*/
class Permutations
{
	// Get number multiplier to permutations
	fun multiplier(num: Int): Int
	{	
        var n  = num;
		var ans: Int = 0;
		while (n != 0)
		{
			if (ans == 0)
			{
				ans = 1;
			}
			else
			{
				ans = ans * 10;
			}
			n /= 10;
		}
		return ans;
	}
	// Find all cyclic permutations in number form
	fun permutation(num: Int, actual: Int, multiply: Int): Unit
	{
		print(" " + num + "\n");
		var next: Int = (num % 10) * multiply + (num / 10);
		if (next != actual)
		{
			this.permutation(next, actual, multiply);
		}
	}
	// Handles the request of finding cyclic Permutation
	fun cyclicPermutations(num: Int): Unit
	{
		// When number is less then zero
		if (num < 0)
		{
			return;
		}
		var multiply: Int = this.multiplier(num);
		print("\n Cyclic Permutation Of Number " + num + " are \n");
		this.permutation(num, num, multiply);
	}
}
fun main(args: Array < String > ): Unit
{
	var task: Permutations = Permutations();
	// Test
	task.cyclicPermutations(76832);
	task.cyclicPermutations(123456);
	task.cyclicPermutations(420);
}

Output

 Cyclic Permutation Of Number 76832 are
 76832
 27683
 32768
 83276
 68327

 Cyclic Permutation Of Number 123456 are
 123456
 612345
 561234
 456123
 345612
 234561

 Cyclic Permutation Of Number 420 are
 420
 42
 204




Comment

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