5.阶乘练习

(1)计算n的阶乘

//计算n的阶乘
int main()
{
	int i = 0;
	int n = 0;
	int result = 1;
	printf("请输入数字n,计算他的阶乘:");
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		result*=i;   //result=result * i
	}
	printf("%d\n", result);
	return 0;
}

(2)计算 1!+2!+3!+……+10!

//计算 1!+2!+3!+……+10!

int main()
{
	int i = 0;
	int n = 0;
	int result = 1;
	int num = 0;
	for (i = 1; i <= 3; i++) //阶乘求和
	{
		result = 1;  //计算n的阶乘之前,把result初始为1
		for (n = 1; n <= i; n++) //输出各自的阶乘
		{ 
			result *= n;
		}
		num += result;
	}
	printf("%d",num);
	return 0;
}

使用数学知识优化代码:

4!= 3!*4

5!= 4!*5

通过上述的数学知识可知,一个数字的阶乘就是上一个数字的阶乘*数字本身

int main()
{
	int i = 0;
	int ret = 1;
	int sum = 0;
	for (i = 1; i <= 3; i++)     //1!+2!+3!= 1+2+6 = 9
	{                            //2!+ 3! = 3 + 6 = 9
		ret *= i;    //ret会保留上一个的阶乘进行相乘
		sum += ret;
	}
	printf("%d\n",sum);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值