Skip to content
Related Articles

Related Articles

Improve Article

Find Range Value of the Expression

  • Last Updated : 17 Mar, 2021

Given two integers L and R, the task is to calculate the value of the expression: 

    $$F = \sum_{i=L}^{R} \frac{1}{i^2 + i} $$

Examples: 
 

Input: L = 6, R = 12 
Output: 0.09
Input: L = 5, R = 6 
Output: 0.06 
 

 



Approach: It can be observed that \frac{1}{i^2 + i} = \frac{1}{i} - \frac{1}{i + 1}  .
So, F = \sum_{i=L}^{R} \frac{1}{i^2 + i} = (\frac{1}{L} - \frac{1}{L + 1}) + (\frac{1}{L + 1} - \frac{1}{L + 2}) + .... + (\frac{1}{R} - \frac{1}{R + 1}) = (\frac{1}{L} - \frac{1}{R + 1})
Hence, the answer will be (1 / L) – (1 / (R + 1)).
Below is the implementation of the above approach: 
 

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the value
// of the given expression
double get(double L, double R)
{
 
    // Value of the first term
    double x = 1.0 / L;
 
    // Value of the last term
    double y = 1.0 / (R + 1.0);
 
    return (x - y);
}
 
// Driver code
int main()
{
    int L = 6, R = 12;
 
    // Get the result
    double ans = get(L, R);
    cout << fixed << setprecision(2) << ans;
 
    return 0;
}

Java




// Java implementation of the approach
import java.util.*;
 
class GFG
{
 
// Function to return the value
// of the given expression
static double get(double L, double R)
{
 
    // Value of the first term
    double x = 1.0 / L;
 
    // Value of the last term
    double y = 1.0 / (R + 1.0);
 
    return (x - y);
}
 
// Driver code
public static void main(String []args)
{
    int L = 6, R = 12;
 
    // Get the result
    double ans = get(L, R);
    System.out.printf( "%.2f", ans);
}
}
 
// This code is contributed by Surendra_Gangwar

Python3




# Python3 implementation of the approach
 
# Function to return the value
# of the given expression
def get(L, R) :
 
    # Value of the first term
    x = 1.0 / L;
 
    # Value of the last term
    y = 1.0 / (R + 1.0);
 
    return (x - y);
 
# Driver code
if __name__ == "__main__" :
 
    L = 6; R = 12;
 
    # Get the result
    ans = get(L, R);
    print(round(ans, 2));
 
# This code is contributed by AnkitRai01

C#




     
// C# implementation of the approach
using System;
 
public class GFG
{
  
// Function to return the value
// of the given expression
static double get(double L, double R)
{
  
    // Value of the first term
    double x = 1.0 / L;
  
    // Value of the last term
    double y = 1.0 / (R + 1.0);
  
    return (x - y);
}
  
// Driver code
public static void Main(String []args)
{
    int L = 6, R = 12;
  
    // Get the result
    double ans = get(L, R);
    Console.Write( "{0:F2}", ans);
}
}
 
// This code contributed by PrinciRaj1992

Javascript




<script>
// JavaScript implementation of the approach
 
// Function to return the value
// of the given expression
function get(L, R)
{
 
    // Value of the first term
    let x = 1.0 / L;
 
    // Value of the last term
    let y = 1.0 / (R + 1.0);
    return (x - y);
}
 
// Driver code
    let L = 6, R = 12;
 
    // Get the result
    let ans = get(L, R);
    document.write(Math.round(ans * 100) / 100);
 
// This code is contributed by Surbhi Tyagi.
</script>
Output: 
0.09

 

Time Complexity: O(1)
 

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
Recommended Articles
Page :