# 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 = 5Output :19Explanation :The arr[] is {2, 3, 0, 1, 6, 7}. sum = arr[0] + arr[1] + arr[2] + arr[3] + arr[4] + arr[5] sum = 2 + 3 + 0 + 1 + 6 + 7 Hence, the sum is 19.Input :L = 2, R = 5Output :14Explanation :The arr[] is {0, 1, 6, 7}. sum = arr[2] + arr[3] + arr[4] + arr[5] 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 <bits/stdc++.h>` `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<Integer> 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

`<script>` `//Javascript program to find the` `// sum in given range L to R` `// Function to find the sum` `// within the given range` `function` `findSum( L, R)` `{` ` ` `var` `arr=[];` ` ` `// generating array from given sequence` ` ` `var` `i = 0;` ` ` `var` `x = 2;` ` ` `while` `(i <= R) {` ` ` `arr.push(i + x);` ` ` `if` `(i + 1 <= R)` ` ` `arr.push(i + 1 + x);` ` ` `x *= -1;` ` ` `i += 2;` ` ` `}` ` ` `// calculate the desired sum` ` ` `var` `sum = 0;` ` ` `for` `(` `var` `i = L; i <= R; ++i)` ` ` `sum += arr[i];` ` ` `// return the sum` ` ` `return` `sum;` `}` `var` `L = 0, R = 5;` `document.write( findSum(L, R));` `//This code is contributed by SoumikMondal` `</script>` |

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