Dado un valor n, la tarea es encontrar la suma de la serie (1*2) + (2*3) + (3*4) + ……+ n términos
Ejemplos:
Input: n = 2 Output: 8 Explanation: (1*2) + (2*3) = 2 + 6 = 8 Input: n = 3 Output: 20 Explanation: (1*2) + (2*3) + (2*4) = 2 + 6 + 12 = 20
Solución simple Uno por uno agrega elementos recursivamente.
A continuación se muestra la implementación.
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return sum int sum(int n) { if (n == 1) { return 2; } else { return (n * (n + 1) + sum(n - 1)); } } // Driver code int main() { int n = 2; cout << sum(n); }
Java
// Java implementation of the approach class Solution { // Function to return a the required result static int sum(int n) { if (n == 1) { return 2; } else { return (n * (n + 1) + sum(n - 1)); } } // Driver code public static void main(String args[]) { int n = 2; System.out.println(sum(n)); } }
Python3
# Python3 implementation of the approach # Function to return sum def sum(n): if (n == 1): return 2; else: return (n * (n + 1) + sum(n - 1)); # Driver code n = 2; print(sum(n)); # This code is contributed by mits
C#
// Csharp implementation of the approach using System; class Solution { // Function to return a the required result static int sum(int n) { if (n == 1) { return 2; } else { return (n * (n + 1) + sum(n - 1)); } } // Driver code public static void Main() { int n = 2; Console.WrieLine(sum(n)); } }
PHP
<?php // PHP implementation of the approach // Function to return sum function sum($n) { if ($n == 1) { return 2; } else { return ($n * ($n + 1) + sum($n - 1)); } } // Driver code $n = 2; echo sum($n); // This code is contributed by mits ?>
Javascript
<script> // JavaScript implementation of the approach // Function to return sum function sum(n) { if (n == 1) { return 2; } else { return (n * (n + 1) + sum(n - 1)); } } // Driver code n = 2; document.write(sum(n)); // This code is contributed by rutvik_56. </script>
Producción:
8
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(n)
Solución Eficiente Podemos resolver este problema usando la fórmula directa.
La suma se puede escribir de la siguiente manera
: ∑(n * (n+1))
∑(n*n + n)
= ∑(n*n) + ∑(n)
Podemos aplicar las fórmulas para la suma de cuadrados de números naturales y la suma de números naturales.
= n(n+1)(2n+1)/6 + n*(n+1)/2
= n * (n + 1) * (n + 2) / 3
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return sum int sum(int n) { return n * (n + 1) * (n + 2) / 3; } // Driver code int main() { int n = 2; cout << sum(n); }
Java
// Java implementation of the approach class GFG { // Function to return sum static int sum(int n) { return n * (n + 1) * (n + 2) / 3; } // Driver code public static void main(String[] args) { int n = 2; System.out.println(sum(n)); } } // This code is contributed by Code_Mech
Python3
# Python3 implementation of the approach. # Function to return sum def Sum(n): return n * (n + 1) * (n + 2) // 3 # Driver code if __name__ == "__main__": n = 2; print(Sum(n)) # This code is contributed # by Rituraj Jain
C#
// C# implementation of the approach using System; class GFG { // Function to return sum static int sum(int n) { return n * (n + 1) * (n + 2) / 3; } // Driver code public static void Main(String[] args) { int n = 2; Console.WriteLine(sum(n)); } } // This code contributed by Rajput-Ji
PHP
<?php // PHP implementation of the approach // Function to return sum function sum($n) { return $n * ($n + 1) * ($n + 2) / 3; } // Driver code $n = 2; echo sum($n); // This code is contributed // by 29AjayKumar ?>
Javascript
<script> // Javascript implementation of the approach // Function to return sum function sum(n) { return n * (n + 1) * (n + 2) / 3; } // Driver code var n = 2; document.write(sum(n)); // This code is contributed by noob2000. </script>
Producción:
8
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)