求1!+2!+3!+……+n!,n由键盘输入

本文介绍了如何通过编程实现计算从1到n的阶乘和的功能,包括输入处理、循环计算阶乘及最终输出结果的过程。代码示例清晰简洁,适合初学者理解和实践。

求sum=1!+2!+3!+……n!,n由键盘输入

#include "stdafx.h"
#include<iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
int n,a=1;
int sum=0;
cin>>n;
for(int i=1;i<=n;i++)
{
a*=i;
sum+=a;
}
cout<<"sum="<<sum;
return 0;
}


这题挺简单的,循环中灵活运用累加与累成即可。

以下为几种使用C语言实现根据键盘输入的`n`计算1+2+……+n!的代码示例: ### 方法一:使用for循环 ```c #include <stdio.h> int main(void) { int n = 0; int i = 0; int m = 1; int sum = 0; printf("请输入n的:"); scanf("%d", &n); for (i = 1; i <= n; ++i) { m = m * i; sum = sum + m; } printf("sum = %d\n", sum); return 0; } ``` 此代码通过`for`循环依次计算每个数的阶乘,并将其累加到`sum`中,最终输出结果 [^2]。 ### 方法二:另一种for循环实现 ```c #include <stdio.h> int main() { int i = 0; // 循环变量 int n = 0; // 输入n int ret = 1; // 把每个数的阶乘计算后赋给该变量,因为0乘任何数都为0,所以初始化为1。 int sum = 0; // 外循环后将各个数的阶乘相加后赋给该,作为最终结果。 // 输入: scanf("%d", &n); // 记得使用取地址符:& // 实现代码: for (i = 1; i <= n; i++) // 外循环:实现阶乘相加,相加到 n! { ret = ret * i; // 依次相乘再赋给变量ret sum += ret; // 将各数的阶乘相加后赋给该 } // 打印: printf("%d\n", sum); return 0; } ``` 该代码同样利用`for`循环,每次循环计算当前数的阶乘并累加到`sum`中,最后输出总和 [^3]。 ### 方法三:递归法 ```c #define _CRT_SECURE_NO_WARNINGS // 取消警告 #include <stdio.h> // printf才可以使用 int fun(int x) { if (x == 0) return 1; return x * fun(x - 1); // 比如5!的话,5*fun(4),fun(4)重复循环执行fun函数。 } int main() { int a; int sum = 0; scanf("%d", &a); for (int i = 1; i <= a; i++) { sum = sum + fun(i); } printf("%d\n", sum); return 0; } ``` 此代码定义了一个递归函数`fun`来计算阶乘,然后通过`for`循环调用该函数计算每个数的阶乘并累加,最终输出结果 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值