给定两个值’a’和’n’,找到序列a ^ 1/1的和! + a ^ 2/2! + a ^ 3/3! + a ^ 4/4! +……。+ a ^ n / n!。
例子 :
Input : a = 2 and n = 5
Output : 6.26667
We get result by adding
2^1/1! + 2^2/2! + 2^3/3! + 2^4/4! +
2^5/5!
= 2/1 + 4/2 + 8/6 + 16/24 + 32/120
= 6.26667
一个简单的解决方案是逐项计算各个术语的值,然后将它们相加得出结果。
我们只能找到一个循环的解决方案。想法是仅使用先前的值并乘以(a / i),其中i是我们需要查找的项的编号。
for finding 1st term:- a/1
for finding 2nd term:- (1st term) * a/2
for finding 3rd term:- (2nd term) * a/3
.
.
.
for finding nth term:- ((n-1)th term) * a/n
插图:
Input: a = 2 and n = 5
By multiplying Each term by 2/i
1st term :- 2/1 = 2
2nd term :- (1st term) * 2/2 =(2)*1 = 2
3rd term :- (2nd term) * 2/3 = 4/3
4th term :- (3rd term) * 2/4 = 2/3
5th term :- (4th term) * 2/5 = 4/15
=> 2 + 2 + 4/3 + 2/3 + 4/15
Output: sum = 6.26667
复杂度:O(n)
CPP
/*CPP program to print the sum of series */
#include
using namespace std;
/*function to calculate sum of given series*/
double sumOfSeries(double a,double num)
{
double res = 0,prev=1;
for (int i = 1; i <= num; i++)
{
/*multiply (a/i) to previous term*/
prev *= (a/i);
/*store result in res*/
res = res + prev;
}
return(res);
}
/* Driver Function */
int main()
{
double n = 5, a=2;
cout << sumOfSeries(a,n);
return 0;
}
Java
// Java program to print the
// sum of series
import java.io.*;
class GFG
{
public static void main (String[] args)
{
double n = 5, a = 2;
System.out.println(sumOfSeries(a, n));
}
// function to calculate sum of given series
static double sumOfSeries(double a,double n)
{
double res = 0, prev = 1;
for (int i = 1; i <= n; i++)
{
// multiply (a/i) to previous term
prev *= (a / i);
// store result in res
res = res + prev;
}
return(res);
}
}
// This code is Contributed by Azkia Anam.
Python3
# Python program to print
# the sum of series.
# function to calculate
# sum of given series.
from __future__ import division
def sumOfSeries(a,num):
res = 0
prev=1
for i in range(1, n+1):
# multiply (a/i) to
# previous term
prev *= (a/i)
# store result in res
res = res + prev
return res
# Driver code
n = 5
a = 2
print(round(sumOfSeries(a,n),4))
# This Code is Contributed
# by Azkia Anam.
C#
// C# program to print the
// sum of series
using System;
class GFG
{
public static void Main ()
{
double n = 5, a = 2;
Console.WriteLine(sumOfSeries(a, n));
}
// Function to calculate sum of given series
static float sumOfSeries(double a, double n)
{
double res = 0, prev = 1;
for (int i = 1; i <= n; i++)
{
// multiply (a/i) to previous term
prev *= (a / i);
// store result in res
res = res + prev;
}
return(float)(res);
}
}
// This code is Contributed by vt_m.
PHP
Javascript
输出 :
6.26667