Replace array elements by sum of next two consecutive elements

• Difficulty Level : Basic
• Last Updated : 23 Apr, 2021

Given an array arr[] of size n, The task is to replace every element of the array by the sum of next two consecutive elements in a circular manner i.e. arr = arr + arr, arr = arr + arr, … arr[n – 1] = arr + arr.
Examples:

Input: arr[] = {3, 4, 2, 1, 6}
Output: 6 3 7 9 7
Input: arr[] = {5, 2, 1, 3, 8}
Output: 3 4 11 13 7

Approach: Store the first and second element of the array in variables first and second. Now for every element except the last and the second last element of the array, update arr[i] = arr[i + 1] + arr[i + 2]. Then update the last and the second last element as arr[n – 2] = arr[n – 1] + first and arr[n – 1] = first + second.
Below is the implementation of the above approach:

C++

 // C++ implementation of the approach#include using namespace std; // Utility function to print the// contents of an arrayvoid printArr(int arr[], int n){    for (int i = 0; i < n; i++)        cout << arr[i] << " ";} // Function to update every element of// the array as the sum of next two elementsvoid updateArr(int arr[], int n){     // Invalid array    if (n < 3)        return;     // First and second elements of the array    int first = arr;    int second = arr;     // Update every element as required    // except the last and the    // second last element    for (int i = 0; i < n - 2; i++)        arr[i] = arr[i + 1] + arr[i + 2];     // Update the last and the second    // last element of the array    arr[n - 2] = arr[n - 1] + first;    arr[n - 1] = first + second;     // Print the updated array    printArr(arr, n);} // Driver codeint main(){    int arr[] = { 3, 4, 2, 1, 6 };    int n = sizeof(arr) / sizeof(arr);    updateArr(arr, n);     return 0;}

Java

 // Java implementation of the approachclass GFG{     // Utility function to print the    // contents of an array    static void printArr(int[] arr, int n)    {        for (int i = 0; i < n; i++)        {            System.out.print(arr[i] + " ");        }    }     // Function to update every element of    // the array as the sum of next two elements    static void updateArr(int[] arr, int n)    {         // Invalid array        if (n < 3)        {            return;        }         // First and second elements of the array        int first = arr;        int second = arr;         // Update every element as required        // except the last and the        // second last element        for (int i = 0; i < n - 2; i++)        {            arr[i] = arr[i + 1] + arr[i + 2];        }         // Update the last and the second        // last element of the array        arr[n - 2] = arr[n - 1] + first;        arr[n - 1] = first + second;         // Print the updated array        printArr(arr, n);    }     // Driver code    public static void main(String[] args)    {        int[] arr = {3, 4, 2, 1, 6};        int n = arr.length;        updateArr(arr, n);    }} // This code is contributed by 29AjayKumar

Python3

 # Python 3 implementation of the approach # Utility function to print the# contents of an arraydef printArr(arr, n):    for i in range(n):        print(arr[i], end = " ") # Function to update every element of# the array as the sum of next two elementsdef updateArr(arr, n):         # Invalid array    if (n < 3):        return     # First and second elements of the array    first = arr    second = arr     # Update every element as required    # except the last and the    # second last element    for i in range(n - 2):        arr[i] = arr[i + 1] + arr[i + 2]     # Update the last and the second    # last element of the array    arr[n - 2] = arr[n - 1] + first    arr[n - 1] = first + second     # Print the updated array    printArr(arr, n) # Driver codeif __name__ == '__main__':    arr = [3, 4, 2, 1, 6]    n = len(arr)    updateArr(arr, n)     # This code is contributed by# Surendra_Gangwar

C#

 // C# implementation of the approachusing System; class GFG{     // Utility function to print the// contents of an arraystatic void printArr(int []arr, int n){    for (int i = 0; i < n; i++)        Console.Write(arr[i] + " ");} // Function to update every element of// the array as the sum of next two elementsstatic void updateArr(int []arr, int n){     // Invalid array    if (n < 3)        return;     // First and second elements of the array    int first = arr;    int second = arr;     // Update every element as required    // except the last and the    // second last element    for (int i = 0; i < n - 2; i++)        arr[i] = arr[i + 1] + arr[i + 2];     // Update the last and the second    // last element of the array    arr[n - 2] = arr[n - 1] + first;    arr[n - 1] = first + second;     // Print the updated array    printArr(arr, n);} // Driver codepublic static void Main(){    int []arr = { 3, 4, 2, 1, 6 };    int n = arr.Length;    updateArr(arr, n);}} // This code is contributed// by Akanksha Rai



Javascript


Output:
6 3 7 9 7

My Personal Notes arrow_drop_up