How to replace every element in array by multiplication of next and previous elements with C#

1 Answer

0 votes
using System;

// arr[first] = arr[first] (itself) * arr[next];
// arr[last] = prev * arr[last] (itself);

public class Program
{
	private static void MultiplyNextPrevious(int[] arr) {
		int size = arr.Length;

		if (size <= 1) {
			return;
		}

		int prev = arr[0];

		arr[0] = arr[0] * arr[1];

		for (int i = 1; i < size - 1; i++) {
			int curr = arr[i];
			arr[i] = prev * arr[i + 1]; // arr[i + 1] = next
			prev = curr;
		}

		arr[size - 1] = prev * arr[size - 1];
	}

	public static void Main(string[] args)
	{
		int[] arr = new int[] {2, 3, 5, 6, 12, 8, 10, 7};

		MultiplyNextPrevious(arr);

		for (int i = 0; i < arr.Length; i++) {
			Console.Write(arr[i] + " ");
		}
	}
}




/*
run:
  
6 10 18 60 48 120 56 70 
  
*/

 



answered Oct 2, 2022 by avibootz
...