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

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.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 `

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.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.