Replace array element by multiplication of previous and next

Here given code implementation process.

/*
    C program for
    Replace array element by multiplication of previous and next
*/
#include <stdio.h>

// Display array elements
void printArray(int arr[], int n)
{
	for (int i = 0; i < n; ++i)
	{
		printf("  %d", arr[i]);
	}
}
void productNextAndPrevious(int arr[], int n)
{
	if (n <= 1)
	{
		return;
	}
	// Auxiliary variable back and auxiliary
	int back = arr[0];
	int auxiliary = 0;
	// First element is product of start two elements
	arr[0] = arr[1] *back;
	for (int i = 1; i < n - 1; ++i)
	{
		// Get actual value of previous element
		auxiliary = back;
		// Get current element
		back = arr[i];
		// Multiplication of next and previous element
		arr[i] = arr[i + 1] *auxiliary;
	}
	// Last element is product of two last element
	arr[n - 1] = arr[n - 1] *back;
}
int main(int argc, char
	const *argv[])
{
	int arr1[] = {
		3 , 2 , 5 , 3 , 6 , 1 , -2 , 3
	};
	int arr2[] = {
		1 , 4 , 6 , 2
	};
	int arr3[] = {
		3 , 6 , 1 , 2 , 9 , 3
	};
	// Get the size of arrays
	int l = sizeof(arr1) / sizeof(arr1[0]);
	int m = sizeof(arr2) / sizeof(arr2[0]);
	int n = sizeof(arr3) / sizeof(arr3[0]);
	// Test A
	printf("\n Before Replace Array arr1 \n");
	printArray(arr1, l);
	productNextAndPrevious(arr1, l);
	printf("\n After Replace Array arr1 \n");
	printArray(arr1, l);
	// Test B
	printf("\n Before Replace Array arr2 \n");
	printArray(arr2, m);
	productNextAndPrevious(arr2, m);
	printf("\n After Replace Array arr2 \n");
	printArray(arr2, m);
	// Test C
	printf("\n Before Replace Array arr3 \n");
	printArray(arr3, n);
	productNextAndPrevious(arr3, n);
	printf("\n After Replace Array arr3 \n");
	printArray(arr3, n);
	return 0;
}

Output

 Before Replace Array arr1
  3  2  5  3  6  1  -2  3
 After Replace Array arr1
  6  15  6  30  3  -12  3  -6
 Before Replace Array arr2
  1  4  6  2
 After Replace Array arr2
  4  6  8  12
 Before Replace Array arr3
  3  6  1  2  9  3
 After Replace Array arr3
  18  3  12  9  6  27
/*
    Java program for
    Find all common elements in given 3 sorted arrays
*/
public class Product
{
	// Display array elements
	public void printArray(int[] arr, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			System.out.print(" " + arr[i]);
		}
	}
	public void productNextAndPrevious(int[] arr, int n)
	{
		if (n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		int back = arr[0];
		int auxiliary = 0;
		// First element is product of start two elements
		arr[0] = arr[1] * back;
		for (int i = 1; i < n - 1; ++i)
		{
			// Get actual value of previous element
			auxiliary = back;
			// Get current element
			back = arr[i];
			// Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary;
		}
		// Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back;
	}
	public static void main(String[] args)
	{
		Product task = new Product();
		int[] arr1 = {
			3 , 2 , 5 , 3 , 6 , 1 , -2 , 3
		};
		int[] arr2 = {
			1 , 4 , 6 , 2
		};
		int[] arr3 = {
			3 , 6 , 1 , 2 , 9 , 3
		};
		// Get the size of arrays
		int l = arr1.length;
		int m = arr2.length;
		int n = arr3.length;
		// Test A
		System.out.print("\n Before Replace Array arr1 \n");
		task.printArray(arr1, l);
		task.productNextAndPrevious(arr1, l);
		System.out.print("\n After Replace Array arr1 \n");
		task.printArray(arr1, l);
		// Test B
		System.out.print("\n Before Replace Array arr2 \n");
		task.printArray(arr2, m);
		task.productNextAndPrevious(arr2, m);
		System.out.print("\n After Replace Array arr2 \n");
		task.printArray(arr2, m);
		// Test C
		System.out.print("\n Before Replace Array arr3 \n");
		task.printArray(arr3, n);
		task.productNextAndPrevious(arr3, n);
		System.out.print("\n After Replace Array arr3 \n");
		task.printArray(arr3, n);
	}
}

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27
// Include header file
#include <iostream>
using namespace std;
/*
    C++ program for
    Find all common elements in given 3 sorted arrays
*/
class Product
{
	public:
		// Display array elements
		void printArray(int arr[], int n)
		{
			for (int i = 0; i < n; ++i)
			{
				cout << " " << arr[i];
			}
		}
	void productNextAndPrevious(int arr[], int n)
	{
		if (n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		int back = arr[0];
		int auxiliary = 0;
		// First element is product of start two elements
		arr[0] = arr[1] * back;
		for (int i = 1; i < n - 1; ++i)
		{
			// Get actual value of previous element
			auxiliary = back;
			// Get current element
			back = arr[i];
			// Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary;
		}
		// Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back;
	}
};
int main()
{
	Product *task = new Product();
	int arr1[] = {
		3 , 2 , 5 , 3 , 6 , 1 , -2 , 3
	};
	int arr2[] = {
		1 , 4 , 6 , 2
	};
	int arr3[] = {
		3 , 6 , 1 , 2 , 9 , 3
	};
	// Get the size of arrays
	int l = sizeof(arr1) / sizeof(arr1[0]);
	int m = sizeof(arr2) / sizeof(arr2[0]);
	int n = sizeof(arr3) / sizeof(arr3[0]);
	// Test A
	cout << "\n Before Replace Array arr1 \n";
	task->printArray(arr1, l);
	task->productNextAndPrevious(arr1, l);
	cout << "\n After Replace Array arr1 \n";
	task->printArray(arr1, l);
	// Test B
	cout << "\n Before Replace Array arr2 \n";
	task->printArray(arr2, m);
	task->productNextAndPrevious(arr2, m);
	cout << "\n After Replace Array arr2 \n";
	task->printArray(arr2, m);
	// Test C
	cout << "\n Before Replace Array arr3 \n";
	task->printArray(arr3, n);
	task->productNextAndPrevious(arr3, n);
	cout << "\n After Replace Array arr3 \n";
	task->printArray(arr3, n);
	return 0;
}

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27
// Include namespace system
using System;
/*
    Csharp program for
    Find all common elements in given 3 sorted arrays
*/
public class Product
{
	// Display array elements
	public void printArray(int[] arr, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			Console.Write(" " + arr[i]);
		}
	}
	public void productNextAndPrevious(int[] arr, int n)
	{
		if (n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		int back = arr[0];
		int auxiliary = 0;
		// First element is product of start two elements
		arr[0] = arr[1] * back;
		for (int i = 1; i < n - 1; ++i)
		{
			// Get actual value of previous element
			auxiliary = back;
			// Get current element
			back = arr[i];
			// Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary;
		}
		// Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back;
	}
	public static void Main(String[] args)
	{
		Product task = new Product();
		int[] arr1 = {
			3 , 2 , 5 , 3 , 6 , 1 , -2 , 3
		};
		int[] arr2 = {
			1 , 4 , 6 , 2
		};
		int[] arr3 = {
			3 , 6 , 1 , 2 , 9 , 3
		};
		// Get the size of arrays
		int l = arr1.Length;
		int m = arr2.Length;
		int n = arr3.Length;
		// Test A
		Console.Write("\n Before Replace Array arr1 \n");
		task.printArray(arr1, l);
		task.productNextAndPrevious(arr1, l);
		Console.Write("\n After Replace Array arr1 \n");
		task.printArray(arr1, l);
		// Test B
		Console.Write("\n Before Replace Array arr2 \n");
		task.printArray(arr2, m);
		task.productNextAndPrevious(arr2, m);
		Console.Write("\n After Replace Array arr2 \n");
		task.printArray(arr2, m);
		// Test C
		Console.Write("\n Before Replace Array arr3 \n");
		task.printArray(arr3, n);
		task.productNextAndPrevious(arr3, n);
		Console.Write("\n After Replace Array arr3 \n");
		task.printArray(arr3, n);
	}
}

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27
package main
import "fmt"
/*
    Go program for
    Find all common elements in given 3 sorted arrays
*/

// Display array elements
func printArray(arr[] int, n int) {
	for i := 0 ; i < n ; i++ {
		fmt.Print(" ", arr[i])
	}
}
func productNextAndPrevious(arr[] int, n int) {
	if n <= 1 {
		return
	}
	// Auxiliary variable back and auxiliary
	var back int = arr[0]
	var auxiliary int = 0
	// First element is product of start two elements
	arr[0] = arr[1] * back
	for i := 1 ; i < n - 1 ; i++ {
		// Get actual value of previous element
		auxiliary = back
		// Get current element
		back = arr[i]
		// Multiplication of next and previous element
		arr[i] = arr[i + 1] * auxiliary
	}
	// Last element is product of two last element
	arr[n - 1] = arr[n - 1] * back
}
func main() {

	var arr1 = [] int { 3 , 2 , 5 , 3 , 6 , 1 , -2 , 3}
	var arr2 = [] int { 1 , 4 , 6 , 2}
	var arr3 = [] int { 3 , 6 , 1 , 2 , 9 , 3}
	// Get the size of arrays
	var l int = len(arr1)
	var m int = len(arr2)
	var n int = len(arr3)
	// Test A
	fmt.Print("\n Before Replace Array arr1 \n")
	printArray(arr1, l)
	productNextAndPrevious(arr1, l)
	fmt.Print("\n After Replace Array arr1 \n")
	printArray(arr1, l)
	// Test B
	fmt.Print("\n Before Replace Array arr2 \n")
	printArray(arr2, m)
	productNextAndPrevious(arr2, m)
	fmt.Print("\n After Replace Array arr2 \n")
	printArray(arr2, m)
	// Test C
	fmt.Print("\n Before Replace Array arr3 \n")
	printArray(arr3, n)
	productNextAndPrevious(arr3, n)
	fmt.Print("\n After Replace Array arr3 \n")
	printArray(arr3, n)
}

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27
<?php
/*
    Php program for
    Find all common elements in given 3 sorted arrays
*/
class Product
{
	// Display array elements
	public	function printArray($arr, $n)
	{
		for ($i = 0; $i < $n; ++$i)
		{
			echo(" ".$arr[$i]);
		}
	}
	public	function productNextAndPrevious(&$arr, $n)
	{
		if ($n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		$back = $arr[0];
		$auxiliary = 0;
		// First element is product of start two elements
		$arr[0] = $arr[1] * $back;
		for ($i = 1; $i < $n - 1; ++$i)
		{
			// Get actual value of previous element
			$auxiliary = $back;
			// Get current element
			$back = $arr[$i];
			// Multiplication of next and previous element
			$arr[$i] = $arr[$i + 1] * $auxiliary;
		}
		// Last element is product of two last element
		$arr[$n - 1] = $arr[$n - 1] * $back;
	}
}

function main()
{
	$task = new Product();
	$arr1 = array(3, 2, 5, 3, 6, 1, -2, 3);
	$arr2 = array(1, 4, 6, 2);
	$arr3 = array(3, 6, 1, 2, 9, 3);
	// Get the size of arrays
	$l = count($arr1);
	$m = count($arr2);
	$n = count($arr3);
	// Test A
	echo("\n Before Replace Array arr1 \n");
	$task->printArray($arr1, $l);
	$task->productNextAndPrevious($arr1, $l);
	echo("\n After Replace Array arr1 \n");
	$task->printArray($arr1, $l);
	// Test B
	echo("\n Before Replace Array arr2 \n");
	$task->printArray($arr2, $m);
	$task->productNextAndPrevious($arr2, $m);
	echo("\n After Replace Array arr2 \n");
	$task->printArray($arr2, $m);
	// Test C
	echo("\n Before Replace Array arr3 \n");
	$task->printArray($arr3, $n);
	$task->productNextAndPrevious($arr3, $n);
	echo("\n After Replace Array arr3 \n");
	$task->printArray($arr3, $n);
}
main();

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27
/*
    Node JS program for
    Find all common elements in given 3 sorted arrays
*/
class Product
{
	// Display array elements
	printArray(arr, n)
	{
		for (var i = 0; i < n; ++i)
		{
			process.stdout.write(" " + arr[i]);
		}
	}
	productNextAndPrevious(arr, n)
	{
		if (n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		var back = arr[0];
		var auxiliary = 0;
		// First element is product of start two elements
		arr[0] = arr[1] * back;
		for (var i = 1; i < n - 1; ++i)
		{
			// Get actual value of previous element
			auxiliary = back;
			// Get current element
			back = arr[i];
			// Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary;
		}
		// Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back;
	}
}

function main()
{
	var task = new Product();
	var arr1 = [3, 2, 5, 3, 6, 1, -2, 3];
	var arr2 = [1, 4, 6, 2];
	var arr3 = [3, 6, 1, 2, 9, 3];
	// Get the size of arrays
	var l = arr1.length;
	var m = arr2.length;
	var n = arr3.length;
	// Test A
	process.stdout.write("\n Before Replace Array arr1 \n");
	task.printArray(arr1, l);
	task.productNextAndPrevious(arr1, l);
	process.stdout.write("\n After Replace Array arr1 \n");
	task.printArray(arr1, l);
	// Test B
	process.stdout.write("\n Before Replace Array arr2 \n");
	task.printArray(arr2, m);
	task.productNextAndPrevious(arr2, m);
	process.stdout.write("\n After Replace Array arr2 \n");
	task.printArray(arr2, m);
	// Test C
	process.stdout.write("\n Before Replace Array arr3 \n");
	task.printArray(arr3, n);
	task.productNextAndPrevious(arr3, n);
	process.stdout.write("\n After Replace Array arr3 \n");
	task.printArray(arr3, n);
}
main();

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27
#    Python 3 program for
#    Find all common elements in given 3 sorted arrays
class Product :
	#  Display list elements
	def printArray(self, arr, n) :
		i = 0
		while (i < n) :
			print(" ", arr[i], end = "")
			i += 1
		
	
	def productNextAndPrevious(self, arr, n) :
		if (n <= 1) :
			return
		
		#  Auxiliary variable back and auxiliary
		back = arr[0]
		auxiliary = 0
		#  First element is product of start two elements
		arr[0] = arr[1] * back
		i = 1
		while (i < n - 1) :
			#  Get actual value of previous element
			auxiliary = back
			#  Get current element
			back = arr[i]
			#  Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary
			i += 1
		
		#  Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back
	

def main() :
	task = Product()
	arr1 = [3, 2, 5, 3, 6, 1, -2, 3]
	arr2 = [1, 4, 6, 2]
	arr3 = [3, 6, 1, 2, 9, 3]
	#  Get the size of lists
	l = len(arr1)
	m = len(arr2)
	n = len(arr3)
	#  Test A
	print("\n Before Replace Array arr1 ")
	task.printArray(arr1, l)
	task.productNextAndPrevious(arr1, l)
	print("\n After Replace Array arr1 ")
	task.printArray(arr1, l)
	#  Test B
	print("\n Before Replace Array arr2 ")
	task.printArray(arr2, m)
	task.productNextAndPrevious(arr2, m)
	print("\n After Replace Array arr2 ")
	task.printArray(arr2, m)
	#  Test C
	print("\n Before Replace Array arr3 ")
	task.printArray(arr3, n)
	task.productNextAndPrevious(arr3, n)
	print("\n After Replace Array arr3 ")
	task.printArray(arr3, n)

if __name__ == "__main__": main()

Output

 Before Replace Array arr1
  3  2  5  3  6  1  -2  3
 After Replace Array arr1
  6  15  6  30  3  -12  3  -6
 Before Replace Array arr2
  1  4  6  2
 After Replace Array arr2
  4  6  8  12
 Before Replace Array arr3
  3  6  1  2  9  3
 After Replace Array arr3
  18  3  12  9  6  27
#    Ruby program for
#    Find all common elements in given 3 sorted arrays
class Product 
	#  Display array elements
	def printArray(arr, n) 
		i = 0
		while (i < n) 
			print(" ", arr[i])
			i += 1
		end

	end

	def productNextAndPrevious(arr, n) 
		if (n <= 1) 
			return
		end

		#  Auxiliary variable back and auxiliary
		back = arr[0]
		auxiliary = 0
		#  First element is product of start two elements
		arr[0] = arr[1] * back
		i = 1
		while (i < n - 1) 
			#  Get actual value of previous element
			auxiliary = back
			#  Get current element
			back = arr[i]
			#  Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary
			i += 1
		end

		#  Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back
	end

end

def main() 
	task = Product.new()
	arr1 = [3, 2, 5, 3, 6, 1, -2, 3]
	arr2 = [1, 4, 6, 2]
	arr3 = [3, 6, 1, 2, 9, 3]
	#  Get the size of arrays
	l = arr1.length
	m = arr2.length
	n = arr3.length
	#  Test A
	print("\n Before Replace Array arr1 \n")
	task.printArray(arr1, l)
	task.productNextAndPrevious(arr1, l)
	print("\n After Replace Array arr1 \n")
	task.printArray(arr1, l)
	#  Test B
	print("\n Before Replace Array arr2 \n")
	task.printArray(arr2, m)
	task.productNextAndPrevious(arr2, m)
	print("\n After Replace Array arr2 \n")
	task.printArray(arr2, m)
	#  Test C
	print("\n Before Replace Array arr3 \n")
	task.printArray(arr3, n)
	task.productNextAndPrevious(arr3, n)
	print("\n After Replace Array arr3 \n")
	task.printArray(arr3, n)
end

main()

Output

 Before Replace Array arr1 
 3 2 5 3 6 1 -2 3
 After Replace Array arr1 
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2 
 1 4 6 2
 After Replace Array arr2 
 4 6 8 12
 Before Replace Array arr3 
 3 6 1 2 9 3
 After Replace Array arr3 
 18 3 12 9 6 27
/*
    Scala program for
    Find all common elements in given 3 sorted arrays
*/
class Product()
{
	// Display array elements
	def printArray(arr: Array[Int], n: Int): Unit = {
		var i: Int = 0;
		while (i < n)
		{
			print(" " + arr(i));
			i += 1;
		}
	}
	def productNextAndPrevious(arr: Array[Int], n: Int): Unit = {
		if (n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		var back: Int = arr(0);
		var auxiliary: Int = 0;
		// First element is product of start two elements
		arr(0) = arr(1) * back;
		var i: Int = 1;
		while (i < n - 1)
		{
			// Get actual value of previous element
			auxiliary = back;
			// Get current element
			back = arr(i);
			// Multiplication of next and previous element
			arr(i) = arr(i + 1) * auxiliary;
			i += 1;
		}
		// Last element is product of two last element
		arr(n - 1) = arr(n - 1) * back;
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Product = new Product();
		var arr1: Array[Int] = Array(3, 2, 5, 3, 6, 1, -2, 3);
		var arr2: Array[Int] = Array(1, 4, 6, 2);
		var arr3: Array[Int] = Array(3, 6, 1, 2, 9, 3);
		// Get the size of arrays
		var l: Int = arr1.length;
		var m: Int = arr2.length;
		var n: Int = arr3.length;
		// Test A
		print("\n Before Replace Array arr1 \n");
		task.printArray(arr1, l);
		task.productNextAndPrevious(arr1, l);
		print("\n After Replace Array arr1 \n");
		task.printArray(arr1, l);
		// Test B
		print("\n Before Replace Array arr2 \n");
		task.printArray(arr2, m);
		task.productNextAndPrevious(arr2, m);
		print("\n After Replace Array arr2 \n");
		task.printArray(arr2, m);
		// Test C
		print("\n Before Replace Array arr3 \n");
		task.printArray(arr3, n);
		task.productNextAndPrevious(arr3, n);
		print("\n After Replace Array arr3 \n");
		task.printArray(arr3, n);
	}
}

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27
import Foundation;
/*
    Swift 4 program for
    Find all common elements in given 3 sorted arrays
*/
class Product
{
	// Display array elements
	func printArray(_ arr: [Int], _ n: Int)
	{
		var i: Int = 0;
		while (i < n)
		{
			print(" ", arr[i], terminator: "");
			i += 1;
		}
	}
	func productNextAndPrevious(_ arr: inout[Int], _ n: Int)
	{
		if (n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		var back: Int = arr[0];
		var auxiliary: Int = 0;
		// First element is product of start two elements
		arr[0] = arr[1] * back;
		var i: Int = 1;
		while (i < n - 1)
		{
			// Get actual value of previous element
			auxiliary = back;
			// Get current element
			back = arr[i];
			// Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary;
			i += 1;
		}
		// Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back;
	}
}
func main()
{
	let task: Product = Product();
	var arr1: [Int] = [3, 2, 5, 3, 6, 1, -2, 3];
	var arr2: [Int] = [1, 4, 6, 2];
	var arr3: [Int] = [3, 6, 1, 2, 9, 3];
	// Get the size of arrays
	let l: Int = arr1.count;
	let m: Int = arr2.count;
	let n: Int = arr3.count;
	// Test A
	print("\n Before Replace Array arr1 ");
	task.printArray(arr1, l);
	task.productNextAndPrevious(&arr1, l);
	print("\n After Replace Array arr1 ");
	task.printArray(arr1, l);
	// Test B
	print("\n Before Replace Array arr2 ");
	task.printArray(arr2, m);
	task.productNextAndPrevious(&arr2, m);
	print("\n After Replace Array arr2 ");
	task.printArray(arr2, m);
	// Test C
	print("\n Before Replace Array arr3 ");
	task.printArray(arr3, n);
	task.productNextAndPrevious(&arr3, n);
	print("\n After Replace Array arr3 ");
	task.printArray(arr3, n);
}
main();

Output

 Before Replace Array arr1
  3  2  5  3  6  1  -2  3
 After Replace Array arr1
  6  15  6  30  3  -12  3  -6
 Before Replace Array arr2
  1  4  6  2
 After Replace Array arr2
  4  6  8  12
 Before Replace Array arr3
  3  6  1  2  9  3
 After Replace Array arr3
  18  3  12  9  6  27
/*
    Kotlin program for
    Find all common elements in given 3 sorted arrays
*/
class Product
{
	// Display array elements
	fun printArray(arr: Array < Int > , n: Int): Unit
	{
		var i: Int = 0;
		while (i < n)
		{
			print(" " + arr[i]);
			i += 1;
		}
	}
	fun productNextAndPrevious(arr: Array < Int > , n: Int): Unit
	{
		if (n <= 1)
		{
			return;
		}
		// Auxiliary variable back and auxiliary
		var back: Int = arr[0];
		var auxiliary: Int;
		// First element is product of start two elements
		arr[0] = arr[1] * back;
		var i: Int = 1;
		while (i < n - 1)
		{
			// Get actual value of previous element
			auxiliary = back;
			// Get current element
			back = arr[i];
			// Multiplication of next and previous element
			arr[i] = arr[i + 1] * auxiliary;
			i += 1;
		}
		// Last element is product of two last element
		arr[n - 1] = arr[n - 1] * back;
	}
}
fun main(args: Array < String > ): Unit
{
	val task: Product = Product();
	val arr1: Array < Int > = arrayOf(3, 2, 5, 3, 6, 1, -2, 3);
	val arr2: Array < Int > = arrayOf(1, 4, 6, 2);
	val arr3: Array < Int > = arrayOf(3, 6, 1, 2, 9, 3);
	// Get the size of arrays
	val l: Int = arr1.count();
	val m: Int = arr2.count();
	val n: Int = arr3.count();
	// Test A
	print("\n Before Replace Array arr1 \n");
	task.printArray(arr1, l);
	task.productNextAndPrevious(arr1, l);
	print("\n After Replace Array arr1 \n");
	task.printArray(arr1, l);
	// Test B
	print("\n Before Replace Array arr2 \n");
	task.printArray(arr2, m);
	task.productNextAndPrevious(arr2, m);
	print("\n After Replace Array arr2 \n");
	task.printArray(arr2, m);
	// Test C
	print("\n Before Replace Array arr3 \n");
	task.printArray(arr3, n);
	task.productNextAndPrevious(arr3, n);
	print("\n After Replace Array arr3 \n");
	task.printArray(arr3, n);
}

Output

 Before Replace Array arr1
 3 2 5 3 6 1 -2 3
 After Replace Array arr1
 6 15 6 30 3 -12 3 -6
 Before Replace Array arr2
 1 4 6 2
 After Replace Array arr2
 4 6 8 12
 Before Replace Array arr3
 3 6 1 2 9 3
 After Replace Array arr3
 18 3 12 9 6 27


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