Encuentra la suma de n términos de la serie 12, 105, 1008, 10011, …

Dado un entero positivo n . Encuentre la suma del primer término n de la serie 

12, 105, 1008, 10011, …..

Ejemplos:

Entrada: n = 4
Salida: 11136

Entrada: n = 7
Salida: 11111187

Acercarse:

La secuencia se forma usando el siguiente patrón. Para cualquier valor N-

S_{n} = \frac{10}{9}*(10^{n}-1) + \frac{n}{2}[3n+1]

La solución anterior se puede derivar siguiendo una serie de pasos:

Serie dada-

12 + 105 + 1008 + 10011 +…….

10 + 2 + 100 + 5 + 1000 + 8 + 10000 + 11 +……..

(10 + 100 + 1000 + 10000+……) + (2 + 5 + 8 + 11+……) -(1)

El primer término de la ecuación anterior es progresión geométrica y el segundo término es progresión aritmética.

GPa*\frac{r^{n}-1}{r-1}
donde a es el primer término a, r es la razón común y n es el número de términos.

AP\frac{n}{2}[2a +(n - 1)d]
donde a es el primer término a, a es la diferencia común y n es el número de términos.

Entonces, después de sustituir los valores en la ecuación de GP y AP y sustituir las ecuaciones correspondientes en la ecuación (1), obtenemos,

10*\frac{10^{n}-1}{10-1} + \frac{n}{2}[2*2+(n-1)*3]

\frac{10}{9}*10^{n}-1 + \frac{n}{2}[4+3n-3]

\frac{10}{9}*(10^{n}-1) + \frac{n}{2}[3n+1]

Asi que,  S_{n} = \frac{10}{9}*(10^{n}-1) + \frac{n}{2}[3n+1]

Ilustración:

Entrada: n = 4
Salida: 11136
Explicación:
S_{n} = \frac{10}{9}*(10^{4}-1) + \frac{4}{2}[3*4+1]               
S_{n} = \frac{10}{9}*(9999) + \frac{4}{2}[13]
S_{n} = 11110 + 26
S_{n} = 11136

Esto da respuesta 11136.

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

C++

// C++ program to implement
// the above approach
#include <bits/stdc++.h>
#define ll long long
using namespace std;
 
// Function to return sum of
// N term of the series
 
ll findSum(ll n)
{
    ll x = 10 * (pow(10, n) - 1) / 9;
    ll y = n * (3 * n + 1) / 2;
 
    return x + y;
}
 
// Driver Code
 
int main()
{
    ll n = 4;
    cout << findSum(n);
    return 0;
}

Java

// Java program to implement
// the above approach
class GFG
{
 
  // Function to return sum of
  // N term of the series
  static int findSum(int n) {
    int x = (int)(10 * (Math.pow(10, n) - 1) / 9);
    int y = n * (3 * n + 1) / 2;
 
    return x + y;
  }
 
  // Driver Code
  public static void main(String args[]) {
    int n = 4;
    System.out.println(findSum(n));
  }
}
 
// This code is contributed by saurabh_jaiswal.

Python3

# Python program to implement
# the above approach
# include <bits/stdc++.h>
# define ll long long
 
# Function to return sum of
# N term of the series
def findSum(n):
    x = 10 * ((10 ** n) - 1) / 9
    y = n * (3 * n + 1) / 2
 
    return int(x + y)
 
# Driver Code
n = 4
print(findSum(n))
 
# This code is contributed by saurabh_jaiswal.

C#

// C# program to implement
// the above approach
using System;
class GFG
{
 
  // Function to return sum of
  // N term of the series
  static int findSum(int n) {
    int x = (int)(10 * (Math.Pow(10, n) - 1) / 9);
    int y = n * (3 * n + 1) / 2;
 
    return x + y;
  }
 
  // Driver Code
  public static void Main()
  {
    int n = 4;
    Console.Write(findSum(n));
 
  }
}
 
// This code is contributed by Samim Hossain Mondal.

Javascript

<script>
      // JavaScript code for the above approach
 
      // Function to return sum of
      // N term of the series
      function findSum(n) {
 
          let x = 10 * (Math.pow(10, n) - 1) / 9;
          let y = n * (3 * n + 1) / 2;
 
          return Math.floor(x) + Math.floor(y);
      }
      // Driver Code
 
      // Get the value of N
      let N = 4;
      document.write(findSum(N));
 
// This code is contributed by Potta Lokesh
  </script>
Producción

11136

Complejidad de tiempo: O(1)

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

Publicación traducida automáticamente

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