PTA-计算1!+2!+3!+......

题目:

已知求阶乘的函数如下,利用这个函数,编程计算并输出5*(1!+2!+...+n!)的值。注意函数Fact()返回的类型。

unsigned long  Fact(unsigned int  n)
{
    int  i;
    unsigned long result = 1;
    for (i=2; i<=n; i++)
        result *= i;
    return result;
}

输入格式:

输入整数n,n小于13。

输出格式:

sum=计算结果。

输入样例:

4

输出样例:

sum=165

分析: 

计算一个特定序列的求和,并将结果乘以5后输出。

代码逻辑如下:

  1. 首先,代码从用户那里获取一个整数 n
  2. 初始化一个变量 sum 为0,这个变量将用于存储最终的求和结果。
  3. 使用一个外循环,循环变量 i 的值从1到 n
    • 在这个循环中,初始化一个变量 m 为1。
    • 然后,使用一个内循环,循环变量 j 的值从1到 i
      • 在这个循环中,将 m 乘以 j,然后将结果重新赋值给 m
    • 将 m 的值加到 sum 上。
  4. 在外循环结束后,将 sum 乘以5。
  5. 最后,使用 print 函数输出 sum 的值。

以 n=3 为例,代码的执行过程如下:

  1. i=1m=1*1=1sum=0+1=1
  2. i=2m=1*2=2sum=1+2=3
  3. i=3m=1*3=3sum=3+3=6

所以,当 n=3 时,最后的输出结果为 sum=30。这是因为 1+2+3=6,然后将6乘以5等于30。

注意:这个代码实际上计算的是一个数学序列的和,该序列的通项公式是每一项等于前一项乘以它的序号。例如,第一项是1,第二项是1×2,第三项是2×3,以此类推。然后将这个序列的和乘以5。

Python版本:

n = int(input())    
sum = 0    
for i in range(1, n+1):    
    m = 1    
    for j in range(1, i+1):    
        m = m * j    
    sum = sum + m    
sum*=5;
print(f"sum={sum}")

结果: 

PTA-计算1!+2!+3!+......_第1张图片

总结:

 这段代码的核心思想是计算一个特定序列的和,并将结果乘以5。这个特定序列的每一项都是前一项乘以它的序号。通过一个外循环和一个内循环,程序计算了这个序列的和,然后将结果存储在变量sum中,最后将sum乘以5并输出。总的来说并不难!

 

你可能感兴趣的:(算法,python)