c++:输入一个数,求1!+...+n!计数型循环

总方法  计数型循环:

1.常用于处理已知循环次数的过程

2.控制循环变量每次都发生规律性变化(如递增或递减),并在到达约束条件时停止循环

3.计数型循环常用for语句

一.题意拆分:

1.求出一个数m的阶乘(累乘)

n=1(存放累乘结果的变量的初值),a为阶乘展开式的每一项的值,n*=a,累乘每一项a并存入n,那么n==m!

2.1!+..+n!的阶乘求和(累和)

k=0(存放每一项结果的变量的初值),b为每一项的值,k+=b,累和每一项b并存入k,那么

1!+..+n!==k

3.由以上两点可以知道2.中的b就是1.中的n的最终值,故1.+2.就能解决这个问题

4.要求m的值可以在1--n之间逐个递进,直到m=n时停止(循环),符合计数型循环的条件

#include <iostream>
using namespace std;
long long int j(int a)
{
	long long int d= 1, b = 0, c = 1;//累和器初值为0 ;累乘器初值为1,循环控制变量为c(不可能一直乘下去的)
	for (; c <= a; c++)
	{
		d *= c;//求每一次的阶乘,求n!的过程中会把小于n的阶乘全部求出来;
		b += d;//把每一个阶乘累和;
	}
	return b;
}
int main()
{
	int a;
	cin >> a;
	cout << j(a);
}

定义变量与函数为long long型保证我们输入一个大数时,这个结果不会造成溢出(即系统分配的内存不足以存放这个数,造成部分数无法存入),这样能输出我们想要的正确的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值