Рубрики

Программа для поиска суммы 1 + х / 2! + х ^ 2/3! + … + х ^ п / (п + 1)!

Для заданных чисел x и n задача состоит в том, чтобы найти сумму следующих рядов от x до n членов:

Примеры:

Input: x = 5, n = 2
Output: 7.67
Explanation:
    Sum of first two termed
    

Input: x = 5, n = 4
Output: 18.08
Explanation:
    

Подход: итерация цикла до n-го члена, вычисление формулы в каждой итерации, т.е.

nth term of the series = 

Ниже приведена реализация вышеуказанного подхода:

C ++

// C ++ Программа для вычисления суммы
// 1 + x / 2! + х ^ 2/3! + ... + х ^ п / (п + 1)!

  
#include <iostream>
#include <math.h>

using namespace std;

  
// Метод нахождения факториала числа

int fact(int n)

{

    if (n == 1)

        return 1;

  

    return n * fact(n - 1);

}

  
// Метод для вычисления суммы

double sum(int x, int n)

{

    double i, total = 1.0;

  

    // повторяем цикл до n

    // и вычисляем формулу

    for (i = 1; i <= n; i++) {

        total = total + (pow(x, i) / fact(i + 1));

    }

  

    return total;

}

  
// Код драйвера

int main()

{

  

    // Получить х и п

    int x = 5, n = 4;

  

    // вывод на печать

    cout << "Sum is: " << sum(x, n);

  

    return 0;

}

Джава

// Java-программа для вычисления суммы
// 1 + x / 2! + х ^ 2/3! + ... + х ^ п / (п + 1)!

  

public class SumOfSeries {

  

    // Метод поиска факториала числа

    static int fact(int n)

    {

        if (n == 1)

            return 1;

  

        return n * fact(n - 1);

    }

  

    // Метод для вычисления суммы

    static double sum(int x, int n)

    {

        double total = 1.0;

  

        // повторяем цикл до n

        // и вычисляем формулу

        for (int i = 1; i <= n; i++) {

            total = total + (Math.pow(x, i) / fact(i + 1));

        }

  

        return total;

    }

  

    // Код драйвера

    public static void main(String[] args)

    {

  

        // Получить х и п

        int x = 5, n = 4;

  

        // Найти и распечатать сумму

        System.out.print("Sum is: " + sum(x, n));

    }

}

python3

# Python3 Программа для вычисления суммы
# 1 + х / 2! + х ^ 2/3! + ... + x ^ n / (n + 1)!

  
# Метод нахождения факториала числа

def fact(n):

    if n == 1:

        return 1

    else:

        return n * fact(n - 1)

  
# Метод вычисления суммы

def sum(x, n):

    total = 1.0

  

    # Повторять цикл до n

    # и вычислить формулу

    for i in range (1, n + 1, 1):

        total = total + (pow(x, i) / fact(i + 1))

  

    return total

  
# Код драйвера

if __name__== '__main__':

      

    # Получи х и н

    x = 5

    n = 4

  

    # Вывод на печать

    print ("Sum is: {0:.4f}".format(sum(x, n)))

      
# Этот код предоставлен
# SURENDRA_GANGWAR

C #

// C # Программа для вычисления суммы
// 1 + x / 2! + х ^ 2/3! + ... + х ^ п / (п + 1)!

using System;

  

class SumOfSeries {

  

    // Метод поиска факториала числа

    static int fact(int n)

    {

        if (n == 1)

            return 1;

  

        return n * fact(n - 1);

    }

  

    // Метод для вычисления суммы

    static double sum(int x, int n)

    {

        double total = 1.0;

  

        // повторяем цикл до n

        // и вычисляем формулу

        for (int i = 1; i <= n; i++) {

            total = total + (Math.Pow(x, i) / fact(i + 1));

        }

  

        return total;

    }

  

    // Код драйвера

    public static void Main()

    {

  

        // Получить х и п

        int x = 5, n = 4;

  

        // Найти и распечатать сумму

        Console.WriteLine("Sum is: " + sum(x, n));

    }

}

  
// Этот код добавлен
// от anuj_67 ..

PHP

<?php
// PHP программа для вычисления суммы
// 1 + x / 2! + х ^ 2/3! + ... + х ^ п / (п + 1)!

  
// Функция для поиска факториала
// числа

function fact($n)

{

    if ($n == 1)

        return 1;

  

    return $n * fact($n - 1);

}

  
// Функция для вычисления суммы

function sum($x, $n)

{

    $total = 1.0;

  

    // повторяем цикл до n

    // и вычисляем формулу

    for ($i = 1; $i <= $n; $i++)

    {

        $total = $total + (pow($x, $i) / 

                          fact($i + 1));

    }

  

    return $total;

}

  
// Код драйвера

  
// Получить х и п

$x = 5;

$n = 4;

  
// вывод на печать

echo "Sum is: ", sum($x, $n);

  
// Этот код предоставлен ANKITRAI1
?>

Выход:

Sum is: 18.0833

Выход:

Sum is: 18.0833

Эффективный подход: сложность времени для вышеуказанного алгоритма составляет O ( ) потому что для каждой суммы вычисляется итерационный факториал, который равен O (n). Можно заметить, что Термин серии можно записать в виде , где , Теперь мы можем перебрать рассчитать сумму.

Ниже приведена реализация вышеуказанного подхода:

C ++

// C ++ реализация подхода
#include <iostream>

using namespace std;

  
// Функция для вычисления суммы ряда

double sum(int x, int n)

{

    double total = 1.0;

  

    // Для сохранения значения S [i-1]

    double previous = 1.0;

  

    // итерация по n для сохранения суммы

    for (int i = 1; i <= n; i++) 

    {

  

        // Обновить предыдущее с помощью S [i]

        previous = (previous * x) / (i + 1);

        total = total + previous;

    }

    return total;

}

  
// Код драйвера

int main() 

{

    // Получить х и п

    int x = 5, n = 4;

      

    // Найти и распечатать сумму

    cout << "Sum is: " << sum(x, n);

  

    return 0;

}

  
// Этот код предоставлен jit_t

Джава

// Java реализация подхода

  

public class GFG {

  

    // Функция для вычисления суммы ряда

    static double sum(int x, int n)

    {

  

        double total = 1.0;

  

        // Для сохранения значения S [i-1]

        double previous = 1.0;

  

        // итерация по n для сохранения суммы

        for (int i = 1; i <= n; i++) {

  

            // Обновить предыдущее с помощью S [i]

            previous = (previous * x) / (i + 1);

            total = total + previous;

        }

  

        return total;

    }

  

    // Код драйвера

    public static void main(String[] args)

    {

  

        // Получить х и п

        int x = 5, n = 4;

  

        // Найти и распечатать сумму

        System.out.print("Sum is: " + sum(x, n));

    }

}

C #

// C # реализация подхода

using System;

  

class GFG 

{

  

    // Функция для вычисления суммы ряда

    public double sum(int x, int n)

    {

        double total = 1.0;

  

        // Для сохранения значения S [i-1]

        double previous = 1.0;

  

        // итерация по n для сохранения суммы

        for (int i = 1; i <= n; i++) 

        {

  

            // Обновить предыдущее с помощью S [i]

            previous = ((previous * x) / (i + 1));

            total = total + previous;

        }

  

        return total;

    }

}

  
// Код драйвера

class geek

{

    public static void Main()

    {

        GFG g = new GFG();

  

        // Получить х и п

        int x = 5, n = 4;

  

        // Найти и распечатать сумму

        Console.WriteLine("Sum is: " + g.sum(x, n));

    }

}

  
// Этот код предоставлен SoM15242

Выход:

Sum is: 18.083333333333336

Сложность времени: O (n)

Рекомендуемые посты:

Программа для поиска суммы 1 + х / 2! + х ^ 2/3! + … + х ^ п / (п + 1)!

0.00 (0%) 0 votes