Calcule la suma de la suma de números en el rango L a R

Dados dos números L y R . La tarea es encontrar la suma de números en el rango L a R.

Ejemplos:

Entrada: L = 3, R = 6
Salida: 40
Explicación: 3 + 3+4 + 3+4+5 + 3+4+5+6 = 40

Entrada: L = 5, R = 6
Salida: 16

 

Enfoque: Este problema está basado en fórmulas. Para la ilustración que se muestra a continuación, observe la cantidad de veces que cada número se repite en la suma y, dependiendo de eso, se calcula la suma final. 

Ilustración: L = 3, R = 6

Suma = 3 + 3+4 + 3+4+5 + 3+4+5+6 = 3+3+3+3 + 4+4+4 + 5+5 + 6 (Al agrupar)
Eso es igual a 3 *4 + 4*3 + 5*2 + 6*1

Por lo tanto, para cualquier rango de L a R, la suma se puede calcular como:

L*D + (L+1)*(D-1) + (L+2)*(D-2) + … + (R-1)*(2) + R*1

A continuación se muestra la implementación del enfoque anterior.

C++

// C++ program for above approach
#include <iostream>
using namespace std;
 
// Function to return sum
int findSum(int L, int R)
{
    // Initializing the variables
    int sum = 0, d = R - L + 1;
 
    for (int i = L; i <= R; i++) {
        sum += (i * d);
        d--;
    }
 
    // Return Sum as the final result.
    return sum;
}
 
// Driver Code
int main()
{
    int L = 3, R = 6;
 
    // Function call
    cout << findSum(L, R);
 
    return 0;
}

Java

// Java code to implement above approach
import java.util.*;
public class GFG {
 
// Function to return sum
static int findSum(int L, int R)
{
   
    // Initializing the variables
    int sum = 0, d = R - L + 1;
 
    for (int i = L; i <= R; i++) {
        sum += (i * d);
        d--;
    }
 
    // Return Sum as the final result.
    return sum;
}
 
// Driver code
public static void main(String args[])
{
    int L = 3, R = 6;
 
    // Function call
    System.out.println(findSum(L, R));
 
}
}
 
// This code is contributed by Samim Hossain Mondal.

Python

# Pyhton program for above approach
 
# Function to return sum
def findSum(L, R):
     
    # Initializing the variables
    sum = 0
    d = R - L + 1
 
    for i in range(L, R + 1):
        sum += (i * d)
        d = d - 1
 
    # Return Sum as the final result.
    return sum
 
# Driver Code
L = 3
R = 6
 
# Function call
print(findSum(L, R))
 
# This code is contributed by Samim Hossain Mondal.

C#

// C# code to implement above approach
using System;
public class GFG {
 
  // Function to return sum
  static int findSum(int L, int R)
  {
 
    // Initializing the variables
    int sum = 0, d = R - L + 1;
 
    for (int i = L; i <= R; i++) {
      sum += (i * d);
      d--;
    }
 
    // Return Sum as the final result.
    return sum;
  }
 
  // Driver code
  public static void Main()
  {
    int L = 3, R = 6;
 
    // Function call
    Console.WriteLine(findSum(L, R));
  }
}
 
// This code is contributed by ukasp.

Javascript

<script>
   // JavaScript code for the above approach
 
 
   // Function to return sum
   function findSum(L, R) {
     // Initializing the variables
     let sum = 0, d = R - L + 1;
 
     for (let i = L; i <= R; i++) {
       sum += (i * d);
       d--;
     }
 
     // Return Sum as the final result.
     return sum;
   }
 
   // Driver Code
 
   let L = 3, R = 6;
 
   // Function call
   document.write(findSum(L, R));
 // This code is contributed by Potta Lokesh
 </script>
Producción

40

 Complejidad temporal: O(R-L+1)

Espacio Auxiliar: O(1), ya que no se ha ocupado ningún espacio extra.

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *