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: 2Entrada: 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
Por lo tanto, si el valor absoluto de R es mayor que igual a 1, imprima «Infinito» . De lo contrario, imprima el valor 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.