Suma de una Progresión Geométrica Infinita (GP)

Dados dos números enteros A y R , que representan el primer término y la razón común de una secuencia geométrica , la tarea es encontrar la suma de la serie geométrica infinita formada por el primer término dado y la razón común.

Ejemplos:

Entrada: A = 1, R = 0,5
Salida: 2

Entrada: A = 1, R = -0,25
Salida: 0,8

Enfoque: El problema dado se puede resolver con base en las siguientes observaciones:

  • Si el valor absoluto de R es mayor que igual a 1, entonces la suma será infinita.
  • De lo contrario, la suma de la serie geométrica con términos infinitos se puede calcular mediante la fórmula

Sum = \frac{A}{(1 - R)}

Por lo tanto, si el valor absoluto de R es mayor que igual a 1, imprima «Infinito» . De lo contrario, imprima el valor  \frac{A}{(1 - R)}           como la suma resultante.

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

C++

// C++ program for the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate the sum of
// an infinite Geometric Progression
void findSumOfGP(double a, double r)
{
    // Case for Infinite Sum
    if (abs(r) >= 1) {
        cout << "Infinite";
        return;
    }
 
    // Store the sum of GP Series
    double sum = a / (1 - r);
 
    // Print the value of sum
    cout << sum;
}
 
// Driver Code
int main()
{
    double A = 1, R = 0.5;
    findSumOfGP(A, R);
 
    return 0;
}

Java

// Java program for the above approach
import java.util.*;
 
class GFG{
 
// Function to calculate the sum of
// an infinite Geometric Progression
static void findSumOfGP(double a, double r)
{
     
    // Case for Infinite Sum
    if (Math.abs(r) >= 1)
    {
        System.out.print("Infinite");
        return;
    }
 
    // Store the sum of GP Series
    double sum = a / (1 - r);
 
    // Print the value of sum
    System.out.print(sum);
}
 
// Driver Code
public static void main(String[] args)
{
    double A = 1, R = 0.5;
    findSumOfGP(A, R);
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python3 program for the above approach
 
# Function to calculate the sum of
# an infinite Geometric Progression
def findSumOfGP(a, r):
   
    # Case for Infinite Sum
    if (abs(r) >= 1):
        print("Infinite")
        return
 
    # Store the sum of GP Series
    sum = a / (1 - r)
 
    # Print the value of sum
    print(int(sum))
 
# Driver Code
if __name__ == '__main__':
    A, R = 1, 0.5
    findSumOfGP(A, R)
 
# This code is contributed by mohit kumar 29.

C#

// C# program for the above approach
using System;
class GFG
{
   
    // Function to calculate the sum of
    // an infinite Geometric Progression
    static void findSumOfGP(double a, double r)
    {
       
        // Case for Infinite Sum
        if (Math.Abs(r) >= 1) {
            Console.Write("Infinite");
            return;
        }
 
        // Store the sum of GP Series
        double sum = a / (1 - r);
 
        // Print the value of sum
        Console.Write(sum);
    }
 
    // Driver Code
    public static void Main()
    {
        double A = 1, R = 0.5;
        findSumOfGP(A, R);
    }
}
 
// This code is contributed by ukasp.

Javascript

<script>
 
// JavaScript program for the above approach
 
// Function to calculate the sum of
// an infinite Geometric Progression
function findSumOfGP(a, r)
{
     
    // Case for Infinite Sum
    if (Math.abs(r) >= 1)
    {
        document.write("Infinite");
        return;
    }
 
    // Store the sum of GP Series
    let sum = a / (1 - r);
 
    // Print the value of sum
    document.write(sum);
}
 
// Driver Code
let A = 1, R = 0.5;
 
findSumOfGP(A, R);
 
// This code is contributed by sanjoy_62
     
</script>
Producción: 

2

 

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

Publicación traducida automáticamente

Artículo escrito por sam_2200 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 *