PTA 习题2-6 求阶乘序列前N项和 (15 分)

本文介绍了如何使用C语言编程解决PTA习题2-6,计算序列1!+2!+3!+...的前N项和。程序要求接收不超过12的正整数N作为输入,输出整数结果。

题目链接

题目要求

本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。

输入格式

输入在一行中给出一个不超过12的正整数N。

输出格式

在一行中输出整数结果。

样例

输入样例1

5

输出样例1

153

解题代码

#include <stdio.h>

double factorial(double n)
{
  double result = 1;
  for (int i =1 ; i <= n; ++i) {
    result *= i;
  }
  return result;
}
int main()
{
  double N = 0;
  double sum = 0;
  scanf("%lf",&N);
  for (double i = 1; i <= N; ++i) {
    sum += factorial(i);
  }
  printf("%.0lf",sum);

}
阶乘序列N,即计算 `1! + 2! + 3! + ... + N!` 的值,通常可以通过以下步骤实现: 1. **定义阶乘函数**:编写一个函数来计算单个数字的阶乘阶乘的定义是 `n! = n * (n-1) * (n-2) * ... * 1`,其中 `0! = 1`。 2. **计算N阶乘**:使用循环从1到N调用阶乘函数,并将结果累加到一个总变量中。 3. **输出结果**:将累加的总输出。 以下是几种不同语言的实现代码: ### C语言实现 ```c #include <stdio.h> // 计算阶乘的函数 int factorial(int x) { int l = 1; for (int j = 1; j <= x; j++) { l = l * j; } return l; } int main() { int n, i, sum = 0; // 读取输入的N scanf("%d", &n); // 循环计算N阶乘 for (i = 1; i <= n; i++) { sum = sum + factorial(i); } // 输出结果 printf("%d", sum); return 0; } ``` ### C++实现 ```cpp #include <iostream> using namespace std; // 计算阶乘的函数 double fact(int n) { double sum = 1; for (int i = 1; i <= n; i++) { sum *= i; } return sum; } int main(void) { int n; int sum = 0; // 读取输入的N cin >> n; // 循环计算N阶乘 for (int i = 1; i <= n; i++) { sum += fact(i); } // 输出结果 cout << sum; return 0; } ``` ### Python实现 ```python # 计算阶乘的函数 def factorial(x): result = 1 for i in range(1, x + 1): result *= i return result # 读取输入的N n = int(input()) # 初始化总为0 sum = 0 # 循环计算N阶乘 for i in range(1, n + 1): sum += factorial(i) # 输出结果 print(sum) ``` 这些代码都遵循了上述的实现步骤,首先定义了计算阶乘的函数,然后使用循环计算N阶乘,并最终输出结果。在CC++代码中,使用了`scanf``cin`来读取输入,而Python使用`input`函数读取输入。输出结果时,CC++使用`printf``cout`,Python使用`print`函数。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huber Wong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值