Dado un número N , la tarea es encontrar la suma de la siguiente serie hasta N términos.
Ejemplos:
Entrada: N = 8
Salida: 201
1 + 2 + 3 + 6 + 9 + 18 + 27 + 54 + 81 = 201
Entrada: N = 12
Salida: 1821
1 + 2 + 3 + 6 + 9 + 18 + 27 + 54 + 81 + 162 + 243 + 486 + 729 = 1821
Enfoque: De la serie dada, encuentre la fórmula para el N-ésimo término:
1st term = 1 2nd term = 2 = 2 * 1 3rd term = 3 = 3/2 * 2 4th term = 6 = 2 * 3 5th term = 9 = 3/2 * 6 6th term = 18 = 2 * 9 . . Nth term = [2 * (N-1)th term], if N is even [3/2 * (N-1)th term], if N is odd
Por lo tanto:
Enésimo término de la serie
Luego itere sobre los números en el rango [1, N] para encontrar todos los términos usando la fórmula anterior y calcule su suma.
Enfoque: al observar el patrón en la serie dada, los siguientes números de la serie se multiplican alternativamente por 2 y 3/2 .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above series #include <iostream> using namespace std; // Function to find the sum of series void printSeriesSum(int N) { double sum = 0; int a = 1; int cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 bool flag = true; // First term sum += a; while (cnt < N) { int nextElement; // If flag is true, multiply by 2 if (flag) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum cout << sum << endl; } // Driver Code int main() { int N = 8; printSeriesSum(N); return 0; }
Java
// Java program for the above series class GFG { // Function to find the sum of series static void printSeriesSum(int N) { double sum = 0; int a = 1; int cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 boolean flag = true; // First term sum += a; while (cnt < N) { int nextElement; // If flag is true, multiply by 2 if (flag == true) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum System.out.println(sum); } // Driver Code public static void main (String[] args) { int N = 8; printSeriesSum(N); } } // This code is contributed by AnkitRai01
Python3
# Python3 program for the above series # Function to find the sum of series def printSeriesSum(N) : sum = 0; a = 1; cnt = 0; # Flag to find the multiplicating # factor.. i.e, by 2 or 3/2 flag = True; # First term sum += a; while (cnt < N) : nextElement = None; # If flag is true, multiply by 2 if (flag) : nextElement = a * 2; sum += nextElement; flag = not flag; # If flag is false, multiply by 3/2 else : nextElement = a * (3 / 2); sum += nextElement; flag = not flag; # Update the previous element # to nextElement a = nextElement; cnt += 1 # Print the sum print(sum); # Driver Code if __name__ == "__main__" : N = 8; printSeriesSum(N); # This code is contributed by AnkitRai01
C#
// C# program for the above series using System; class GFG { // Function to find the sum of series static void printSeriesSum(int N) { double sum = 0; int a = 1; int cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 bool flag = true; // First term sum += a; while (cnt < N) { int nextElement; // If flag is true, multiply by 2 if (flag == true) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum Console.WriteLine(sum); } // Driver Code public static void Main (string[] args) { int N = 8; printSeriesSum(N); } } // This code is contributed by AnkitRai01
Javascript
<script> // javascript program for the above series // Function to find the sum of series function printSeriesSum( N) { let sum = 0; let a = 1; let cnt = 0; // Flag to find the multiplicating // factor.. i.e, by 2 or 3/2 let flag = true; // First term sum += a; while (cnt < N) { let nextElement; // If flag is true, multiply by 2 if (flag) { nextElement = a * 2; sum += nextElement; flag = !flag; } // If flag is false, multiply by 3/2 else { nextElement = a * 3 / 2; sum += nextElement; flag = !flag; } // Update the previous element // to nextElement a = nextElement; cnt++; } // Print the sum document.write(sum ); } // Driver Code let N = 8; printSeriesSum(N); // This code is contributed by todaysgaurav </script>
201
Complejidad de tiempo: O(N)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por shivanisinghss2110 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA