7-183 用for循环求 s=1+ 2+ 3+ …+n的值(阶乘)

7-183 用for循环求 s=1!+ 2!+ 3!+ …+n!的值

任务描述

本关任务:编写程序用for循环求 s=1!+ 2!+ 3!+ …+n!的值。

相关知识

for语句的一般形式为:

   for(表达式1;表达式2;表达式3) 
        语句

for语句的执行过程如下:

  1. for 语句先求解表达式1。

  2. 求解表达式2,若其值为真(非0),则执行 for 语句中指定的内嵌语句,然后执行下面第3步;若其值为假(0),则结束循环,转到第5步。

  3. 求解表达式3。

  4. 转回上面第2步继续执行。

  5. 循环结束,执行 for 语句下面的一个语句。
    其执行过程可用下图表示。

  6. 可以把 for 语句最简单的应用形式也是最容易理解的形式如下:

    for (循环变量赋初值; 循环条件; 循环变量增量)
          语句
    

    循环变量赋初值总是一个赋值语句,它用来给循环控制变量赋初值;

    循环条件是一个关系表达式,它决定什么时候退出循环;

    循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;隔开。例如:

    int sum=0,i;
    for(i=1; i<=100; i++)
       sum=sum+i;
    

    请将 for 语句与 while 语句对比:

    int sum=0,i;
    i=1while(i<=100)
    {
        sum=sum+i;
        i++;
    }
    

    注意:

    1)内嵌语句可以是单条语句,也可以是复合语句。

    2)3个表达式都可以省略,但;不能缺省。省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值;省略了“表达式2(循环条件)”,则表示循环条件永为真,不做其它处理时便成为死循环。例如:

    for(i=1; ;i++)
    { 
        sum=sum+i;
    }
    

    相当于:

    i=1;
    while(1)
    {
        sum=sum+i;
        i++;
    }
    

    编程要求

    根据提示,在右侧编辑器补充代码,用for语句求 s=1!+ 2!+ 3!+ …+n!的值。

    测试说明

    平台会对你编写的代码进行测试:

    测试输入:

    5
    

    预期输出:

    1!=1
    2!=2
    3!=6
    4!=24
    5!=120
    1!+2!+…+5!=153
    
#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);
    int sum=0,temp;
    for (int i = 1; i <= n; ++i) {
        temp = 1;
        for (int j = 1; j <= i; ++j) {
            temp *= j;
        }
        printf("%d!=%d\n",i,temp);
        sum+=temp;
    }
    printf("1!+2!+…+%d!=%d",n,sum);

    return 0;
}

思路

- 那个...没想的那么复杂,直接输出就好啦,每次算出阶乘输出
- 最后把那个和输出调一下格式就行,不知道怎么表述,但真的就很简单😣😣
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用for循环s=1!+ 2!+ 3!+ …+n!的。具体步骤如下: 1. 定义变量s和n,其中n表示要求和的阶乘数。 2. 使用for循环遍历1到n的每个数,计算它的阶乘并累加到s中。 3. 在循环结束后,输出s的即可。 下面是示例代码: s = n = 5 for i in range(1, n+1): factorial = 1 for j in range(1, i+1): factorial *= j s += factorial print(s) 输出结果为:153 这个代码的意思是:计算1到5的阶乘之和,即1!+ 2!+ 3!+ 4!+ 5!= 1 + 2 + 6 + 24 + 120 = 153。 ### 回答2: s=1!2!3!...n!的,可以用 for 循环结构来实现。首先要明确阶乘的概念,阶乘是把一个数的每个自然数相乘,例如:3!=1×2×3=6,4!=1×2×3×4=24。 在 for 循环中,定义一个变量 i,代表从 1 开始到 n 循环计算阶乘。每轮循环阶乘的计算结果累加到一个变量 s 中。最终 s 的就是所的 s=1!2!3!...n!。 代码实现如下: n = int(input("请输入一个正整数:")) s = 1 # 定义变量s为1,存放阶乘结果的累加 for i in range(1, n+1): m = 1 # 定义变量m为1,用于计算i的阶乘 for j in range(1, i+1): m *= j # 累乘到i,计算i的阶乘 s += m # 将i的阶乘结果累加到s中 print("s =", s) 执行上面的代码后,程序会提示用户输入一个正整数,例如输入 3,程序输出的结果为:s = 9。此时,变量 s 存放的就是 1!2!3!的和,即 1+2+6=9。 需要注意,当用户输入 0 或负数时,直接退出程序或提示用户重新输入正整数。另外,如果输入的数较大,可能会导致计算结果溢出,需要使用高精度计算或使用科学计数法来处理。 ### 回答3: 阶乘(factorial)是初学者学习编程的一个基本任务。阶乘一个数学概念,指从 1 到 n 依次乘以每个整数,这个结果就是 n 的阶乘。例如 4 的阶乘为 4! = 1 x 2 x 3 x 4 = 24。 在 Python 中,我们可以用一个 for 循环语句来计算 s = 1! + 2! + 3! + … + n! 的。具体实现方法如下: 首先,使用 input() 函数询问用户要计算的阶乘范围 n。例如,n = int(input("请输入 n 的:"))。 接下来,使用一个 for 循环语句来计算 s 的。在每一次循环中,我们需要计算当前阶乘,并将其加入到 s 中。具体实现方法如下: s = 0 # 初始化 s 的为 0 for i in range(1, n+1): factorial = 1 # 初始化当前阶乘为 1 for j in range(1, i+1): factorial *= j # 计算当前阶乘 s += factorial # 将当前阶乘加入到 s 中 print("s 的为:", s) # 输出 s 的 在这个程序中,我们使用了两个 for 循环语句。外层的 for 循环用来计算 s 的,内层的 for 循环用来计算当前阶乘。在内层的循环中,我们使用一个变量 factorial 来保存当前阶乘,初为 1。在每一次循环中,我们将 j 乘以 factorial,得到的结果即为当前阶乘。最终,将当前阶乘加入到 s 中。在外层的循环中,我们逐次计算 1!, 2!, 3!,…,n! 的,并将其加入到 s 中,最终输出 s 的。 总之,使用 for 循环语句可以很方便地计算阶乘,并和得到 s 的。这个程序可以作为初学者学习 Python 编程的一个基础练习,加强对循环语句和变量的理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Likf(❁´◡`❁)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值