Related Articles

# Find sum in range L to R in given sequence of integers

• Last Updated : 13 May, 2021

Given an array arr[] of integers and a sequence of the form:

[ 2, 3, 0, 1, 6, 7, 4, 5, … ]

Also given two integer L and R such that . The task is to find the sum of all numbers in given range from L to R.
Examples:

```Input : L = 0, R = 5
Output : 19
Explanation :
The arr[] is {2, 3, 0, 1, 6, 7}.
sum = arr + arr + arr + arr + arr + arr
sum = 2 + 3 + 0 + 1 + 6 + 7
Hence, the sum is 19.

Input : L = 2, R = 5
Output : 14
Explanation :
The arr[] is {0, 1, 6, 7}.
sum = arr + arr + arr + arr
sum = 0 + 1 + 6 + 7
Hence, the sum is 14.```

Approach:
To solve the question mentioned above we first have to observe the sequence of the array and understand how is it generated. The given array is generated from a sequence of whole numbers which is [ 0, 1, 2, 3, 4, 5, 6, … ]. Initially we add 2 to the first two integers, then we subtract 2 from the next two integers and this goes on. So our newly formed array looks like [ 0+2, 1+2, 2-2, 3-2, 4+2, 5+2, 6-2, 7-2, … ]. Hence we generate this new sequence of integers up to R and store it in array. Finally, calculate the sum from indices in range L to R and return it.
Below is the implementation of the above approach:

## C++

 `// C++ program to find the``// sum in given range L to R` `#include ``using` `namespace` `std;` `// Function to find the sum``// within the given range``int` `findSum(``int` `L, ``int` `R)``{``    ``vector<``int``> arr;` `    ``// generating array from given sequence``    ``int` `i = 0;``    ``int` `x = 2;``    ``while` `(i <= R) {``        ``arr.push_back(i + x);` `        ``if` `(i + 1 <= R)``            ``arr.push_back(i + 1 + x);` `        ``x *= -1;` `        ``i += 2;``    ``}` `    ``// calculate the desired sum``    ``int` `sum = 0;` `    ``for` `(``int` `i = L; i <= R; ++i)` `        ``sum += arr[i];` `    ``// return the sum``    ``return` `sum;``}` `// Driven code``int` `main()``{` `    ``// initialise the range``    ``int` `L = 0, R = 5;` `    ``cout << findSum(L, R);` `    ``return` `0;``}`

## Java

 `// Java program to find the``// sum in given range L to R``import` `java.util.*;` `class` `GFG{``    ` `// Function to find the sum``// within the given range``public` `static` `int` `findSum(``int` `L, ``int` `R)``{``    ``ArrayList arr = ``new` `ArrayList<>();` `    ``// Generating array from given sequence``    ``int` `i = ``0``;``    ``int` `x = ``2``;``    ``while` `(i <= R)``    ``{``        ``arr.add(i + x);` `        ``if` `(i + ``1` `<= R)``            ``arr.add(i + ``1` `+ x);` `        ``x *= -``1``;` `        ``i += ``2``;``    ``}` `    ``// Calculate the desired sum``    ``int` `sum = ``0``;` `    ``for``(i = L; i <= R; ++i)``       ``sum += arr.get(i);` `    ``// return the sum``    ``return` `sum;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ` `    ``// Initialise the range``    ``int` `L = ``0``, R = ``5``;` `    ``System.out.println(findSum(L, R));``}``}` `// This code is contributed by jrishabh99`

## Python3

 `# Python3 program to find the``# sum in given range L to R` `# Function to find the sum``# within the given range``def` `findSum(L, R) :``    ``arr ``=` `[]` `    ``# generating array from given sequence``    ``i ``=` `0``    ``x ``=` `2``    ``k ``=` `0``    ``while` `(i <``=` `R) :``        ``arr.insert(k, i ``+` `x)``        ``k ``+``=` `1``        ``if` `(i ``+` `1` `<``=` `R) :``            ``arr.insert(k, i ``+` `1` `+` `x)``        ``k ``+``=` `1``        ``x ``*``=` `-``1``        ``i ``+``=` `2` `    ``# calculate the desired sum``    ``sum` `=` `0` `    ``for` `i ``in` `range``(L, R ``+` `1``) :``        ``sum` `+``=` `arr[i]` `    ``# return the sum``    ``return` `sum` `# Driver code` `# initialise the range``L ``=` `0``R ``=` `5``print``(findSum(L, R))` `# This code is contributed by Sanjit_Prasad`

## C#

 `// C# program to find the``// sum in given range L to R``using` `System;``using` `System.Collections;` `class` `GFG{``    ` `// Function to find the sum``// within the given range``public` `static` `int` `findSum(``int` `L, ``int` `R)``{``    ``ArrayList arr = ``new` `ArrayList();` `    ``// Generating array from given sequence``    ``int` `i = 0;``    ``int` `x = 2;``    ``while` `(i <= R)``    ``{``        ``arr.Add(i + x);` `        ``if` `(i + 1 <= R)``            ``arr.Add(i + 1 + x);` `        ``x *= -1;``        ``i += 2;``    ``}` `    ``// Calculate the desired sum``    ``int` `sum = 0;` `    ``for``(i = L; i <= R; ++i)``        ``sum += (``int``)arr[i];` `    ``// return the sum``    ``return` `sum;``}` `// Driver code``public` `static` `void` `Main(``string``[] args)``{``    ` `    ``// Initialise the range``    ``int` `L = 0, R = 5;` `    ``Console.Write(findSum(L, R));``}``}` `// This code is contributed by rutvik_56`

## Javascript

 ``
Output:
`19`

Time Complexity : O(N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up