GFG App
Open App
Browser
Continue

# Sum of the first M elements of Array formed by infinitely concatenating given array

Given an array arr[] consisting of N integers and a positive integer M, the task is to find the sum of the first M elements of the array formed by the infinite concatenation of the given array arr[].

Examples:

Input: arr[] = {1, 2, 3}, M = 5
Output: 9
Explanation:
The array formed by the infinite concatenation of the given array arr[] is of the form {1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, … }.
The sum of the first M(= 5) elements of the array is 1 + 2 + 3 + 1 + 2 = 9.

Input: arr[] = {1}, M = 7
Output: 7

Approach: The given problem can be solved by using the Modulo Operator (%) and consider the given array as the circular array and find the sum of the first M elements accordingly. Follow the steps below to solve this problem:

• Initialize a variable, say sum as 0 to store the resultant sum of the first M elements of the new array.
• Iterate over the range [0, M – 1] using the variable i and increment the value of sum by arr[i%N].
• After completing the above steps, print the value of the sum as the result.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach`   `#include ` `using` `namespace` `std;`   `// Function to find the sum of first` `// M numbers formed by the infinite` `// concatenation of the array A[]` `int` `sumOfFirstM(``int` `A[], ``int` `N, ``int` `M)` `{` `    ``// Stores the resultant sum` `    ``int` `sum = 0;`   `    ``// Iterate over the range [0, M - 1]` `    ``for` `(``int` `i = 0; i < M; i++) {`   `        ``// Add the value A[i%N] to sum` `        ``sum = sum + A[i % N];` `    ``}`   `    ``// Return the resultant sum` `    ``return` `sum;` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `arr[] = { 1, 2, 3 };` `    ``int` `M = 5;` `    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr[0]);` `    ``cout << sumOfFirstM(arr, N, M);`   `    ``return` `0;` `}`

## Java

 `// Java program for the above approach`   `import` `java.io.*;` `import` `java.lang.*;`   `class` `GFG {`   `  ``// Function to find the sum of first` `  ``// M numbers formed by the infinite` `  ``// concatenation of the array A[]` `  ``public` `static` `int` `sumOfFirstM(``int` `A[], ``int` `N, ``int` `M)` `  ``{` `    `  `    ``// Stores the resultant sum` `    ``int` `sum = ``0``;`   `    ``// Iterate over the range [0, M - 1]` `    ``for` `(``int` `i = ``0``; i < M; i++) {`   `      ``// Add the value A[i%N] to sum` `      ``sum = sum + A[i % N];` `    ``}`   `    ``// Return the resultant sum` `    ``return` `sum;` `  ``}`   `  ``// Driver Code` `  ``public` `static` `void` `main(String[] args) {` `    ``int` `arr[] = { ``1``, ``2``, ``3` `};` `    ``int` `M = ``5``;` `    ``int` `N = arr.length;` `    ``System.out.println(sumOfFirstM(arr, N, M));`   `  ``}` `}`   `// This code is contributed by gfgking.`

## Python3

 `# Python3 program for the above approach`   `# Function to find the sum of first` `# M numbers formed by the infinite` `# concatenation of the array A[]` `def` `sumOfFirstM(A, N, M):` `    `  `    ``# Stores the resultant sum` `    ``sum` `=` `0`   `    ``# Iterate over the range [0, M - 1]` `    ``for` `i ``in` `range``(M):` `        `  `        ``# Add the value A[i%N] to sum` `        ``sum` `=` `sum` `+` `A[i ``%` `N]`   `    ``# Return the resultant sum` `    ``return` `sum`   `# Driver Code` `if` `__name__ ``=``=` `'__main__'``:` `    `  `    ``arr ``=` `[ ``1``, ``2``, ``3` `]` `    ``M ``=` `5` `    ``N ``=` `len``(arr)` `    `  `    ``print``(sumOfFirstM(arr, N, M))` `    `  `# This code is contributed by ipg2016107`

## C#

 `// C# program for the above approach` `using` `System;` `class` `GFG {`   `    ``// Function to find the sum of first` `    ``// M numbers formed by the infinite` `    ``// concatenation of the array A[]` `    ``static` `int` `sumOfFirstM(``int``[] A, ``int` `N, ``int` `M)` `    ``{`   `        ``// Stores the resultant sum` `        ``int` `sum = 0;`   `        ``// Iterate over the range [0, M - 1]` `        ``for` `(``int` `i = 0; i < M; i++) {`   `            ``// Add the value A[i%N] to sum` `            ``sum = sum + A[i % N];` `        ``}`   `        ``// Return the resultant sum` `        ``return` `sum;` `    ``}`   `    ``// Driver Code` `    ``public` `static` `void` `Main()` `    ``{` `        ``int``[] arr = { 1, 2, 3 };` `        ``int` `M = 5;` `        ``int` `N = arr.Length;` `        ``Console.WriteLine(sumOfFirstM(arr, N, M));` `    ``}` `}`   `// This code is contributed by subhammahato348.`

## Javascript

 ``

Output:

`9`

Time Complexity: O(M)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up