Рубрики

Заменить элементы массива суммой следующих двух последовательных элементов

Для данного массива arr [] размера n задача состоит в том, чтобы заменить каждый элемент массива суммой следующих двух последовательных элементов по кругу , то есть arr [0] = arr [1] + arr [2] , arr [ 1] = arr [2] + arr [3] ,… arr [n — 1] = arr [0] + arr [1] .

Примеры:

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

Подход: сохранить первый и второй элемент массива в переменных first и second . Теперь для каждого элемента, кроме последнего и второго последнего элемента массива, обновите arr [i] = arr [i + 1] + arr [i + 2] . Затем обновите последний и второй последний элемент как arr [n — 2] = arr [n — 1] + first и arr [n — 1] = first + second .

Ниже приведена реализация вышеуказанного подхода:

C ++

// C ++ реализация подхода
#include <bits/stdc++.h>

using namespace std;

  
// Утилита для печати
// содержимое массива

void printArr(int arr[], int n)

{

    for (int i = 0; i < n; i++)

        cout << arr[i] << " ";

}

  
// Функция для обновления каждого элемента
// массив как сумма следующих двух элементов

void updateArr(int arr[], int n)

{

  

    // Неверный массив

    if (n < 3)

        return;

  

    // Первый и второй элементы массива

    int first = arr[0];

    int second = arr[1];

  

    // Обновляем каждый элемент по мере необходимости

    // кроме последнего и

    // второй последний элемент

    for (int i = 0; i < n - 2; i++)

        arr[i] = arr[i + 1] + arr[i + 2];

  

    // Обновляем последнее и второе

    // последний элемент массива

    arr[n - 2] = arr[n - 1] + first;

    arr[n - 1] = first + second;

  

    // Распечатать обновленный массив

    printArr(arr, n);

}

  
// Код драйвера

int main()

{

    int arr[] = { 3, 4, 2, 1, 6 };

    int n = sizeof(arr) / sizeof(arr[0]);

    updateArr(arr, n);

  

    return 0;

}

Джава

// Java реализация подхода

class GFG 

{

  

    // Утилита для печати

    // содержимое массива

    static void printArr(int[] arr, int n) 

    {

        for (int i = 0; i < n; i++)

        {

            System.out.print(arr[i] + " ");

        }

    }

  

    // Функция для обновления каждого элемента

    // массив как сумма следующих двух элементов

    static void updateArr(int[] arr, int n) 

    {

  

        // Неверный массив

        if (n < 3

        {

            return;

        }

  

        // Первый и второй элементы массива

        int first = arr[0];

        int second = arr[1];

  

        // Обновляем каждый элемент по мере необходимости

        // кроме последнего и

        // второй последний элемент

        for (int i = 0; i < n - 2; i++)

        {

            arr[i] = arr[i + 1] + arr[i + 2];

        }

  

        // Обновляем последнее и второе

        // последний элемент массива

        arr[n - 2] = arr[n - 1] + first;

        arr[n - 1] = first + second;

  

        // Распечатать обновленный массив

        printArr(arr, n);

    }

  

    // Код драйвера

    public static void main(String[] args) 

    {

        int[] arr = {3, 4, 2, 1, 6};

        int n = arr.length;

        updateArr(arr, n);

    }

  
// Этот код предоставлен 29AjayKumar

python3

# Python 3 реализация подхода

  
# Утилита для печати
# содержимое массива

def printArr(arr, n):

    for i in range(n):

        print(arr[i], end = " ")

  
# Функция для обновления каждого элемента
# массив как сумма следующих двух элементов

def updateArr(arr, n):

      

    # Неверный массив

    if (n < 3):

        return

  

    # Первый и второй элементы массива

    first = arr[0]

    second = arr[1]

  

    # Обновлять каждый элемент по мере необходимости

    # кроме последнего и

    # второй последний элемент

    for i in range(n - 2):

        arr[i] = arr[i + 1] + arr[i + 2]

  

    # Обновление последнего и второго

    # последний элемент массива

    arr[n - 2] = arr[n - 1] + first

    arr[n - 1] = first + second

  

    # Распечатать обновленный массив

    printArr(arr, n)

  
# Код драйвера

if __name__ == '__main__':

    arr = [3, 4, 2, 1, 6]

    n = len(arr)

    updateArr(arr, n)

      
# Этот код предоставлен
# Surendra_Gangwar

C #

// C # реализация подхода

using System;

  

class GFG

{

      
// Утилита для печати
// содержимое массива

static void printArr(int []arr, int n)

{

    for (int i = 0; i < n; i++)

        Console.Write(arr[i] + " ");

}

  
// Функция для обновления каждого элемента
// массив как сумма следующих двух элементов

static void updateArr(int []arr, int n)

{

  

    // Неверный массив

    if (n < 3)

        return;

  

    // Первый и второй элементы массива

    int first = arr[0];

    int second = arr[1];

  

    // Обновляем каждый элемент по мере необходимости

    // кроме последнего и

    // второй последний элемент

    for (int i = 0; i < n - 2; i++)

        arr[i] = arr[i + 1] + arr[i + 2];

  

    // Обновляем последнее и второе

    // последний элемент массива

    arr[n - 2] = arr[n - 1] + first;

    arr[n - 1] = first + second;

  

    // Распечатать обновленный массив

    printArr(arr, n);

}

  
// Код драйвера

public static void Main()

{

    int []arr = { 3, 4, 2, 1, 6 };

    int n = arr.Length;

    updateArr(arr, n);

}
}

  
// Этот код добавлен
// Аканкша Рай

PHP

<?php
// PHP реализация подхода

  
// Утилита для печати
// содержимое массива

function printArr($arr, $n)

{

    for ($i = 0; $i < $n; $i++)

        echo $arr[$i], " ";

}

  
// Функция для обновления каждого элемента
// массива как сумма следующих
// два элемента

function updateArr($arr, $n)

{

  

    // Неверный массив

    if ($n < 3)

        return;

  

    // Первый и второй элементы

    // массива

    $first = $arr[0];

    $second = $arr[1];

  

    // Обновляем каждый элемент по мере необходимости

    // кроме последнего и

    // второй последний элемент

    for ($i = 0; $i < ($n - 2); $i++)

        $arr[$i] = $arr[$i + 1] + 

                   $arr[$i + 2];

  

    // Обновляем последнее и второе

    // последний элемент массива

    $arr[$n - 2] = $arr[$n - 1] + $first;

    $arr[$n - 1] = $first + $second;

  

    // Распечатать обновленный массив

    printArr($arr, $n);

}

  
// Код драйвера

$arr = array (3, 4, 2, 1, 6 );

$n = sizeof($arr);

updateArr($arr, $n);

  
// Этот код предоставлен ajit.
?>

Выход:

6 3 7 9 7

Рекомендуемые посты:

Заменить элементы массива суммой следующих двух последовательных элементов

0.00 (0%) 0 votes