计算1~n阶乘,已经相加(2022.12.18)

首先,计算1~n的阶乘,是数字1到n相乘,用到循环语句

int main()
{
int i=0,num=0;
scanf("%d",&n);
for(i=1;i<=n;i++)

{
num=num*i;
}
printf("%d",num);
 return 0;
}

思路是:

首先打出框架

int main()
{
	return 0;
}

考虑到用魂环语句,这里我选择用for语句

int main()
{ 
	int i = 0, n = 0;
	for(i=1;i<=n;i++)
	return 0;
}

这时,我们到实际操作时想要输入一个数,就可以得到这个数的阶乘,此时用到scanf

int main()
{ 
	int i = 0, n = 0;
	scanf("%d", &n);
	for(i=1;i<=n;i++)
	return 0;
}

下面在for的下面打出输出语句

int main()
{ 
	int i = 0, n = 0;
	scanf("%d", &n);
	int num = 1;
	for (i = 1; i <= n; i++)
	{
		num = num * i;
	}
printf("%d", num);
	return 0;
}

这里的num=num*i 多出现一个变量,在上面在多插入一个。


下面介绍把N个阶乘数相加

这里用到的是两个循环语句。

在原来的基础上,在加上几个变量

思路:

比如:我们想输出一个10个n阶乘相加的数:1!+2!+。。。+10!的结果

我们首先需要输入10;

int main()
{ 
	int i = 0, n = 0;
	
	int num = 1;
	int A = 0;
	scanf("%d", &A);
	for(n=1;n<=A;n++)

	 for (i = 1; i <= n; i++)
	{
		num = num * i;
		
	}
	
	return 0;
}

这里的代码思路是我们想算一个A个数的阶乘和,当我们输入的A等于10时,n从1到10开始循环,

从1开始:

到第2个循环,num输出值为1;

第2个循环结束,继续第1个循环

第2个循环继续开始:此时n被+1等于2

开始进行第2个循环,num的输出值为2;等等。。。

//注意,我们需要做的是将每次第2个循环结束时的num还原为1;所以需要加上

num=1;

int main()
{ 
	int i = 0, n = 0;
	
	int num = 1;
	int A = 0;
	scanf("%d", &A);
	for(n=1;n<=A;n++)
{
     num=1;
	 for (i = 1; i <= n; i++)
	{
		num = num * i;
		
	}
}

	return 0;
}

然后我们在最后加上他们几个数相加的代码,最后打印

int main()
{ 
	int i = 0, n = 0;
	
	int num = 1;
	int A = 0;
	int k = 0;
	scanf("%d", &A);
	for (n = 1; n <= A; n++)
	{
		num = 1;
		for (i = 1; i <= n; i++)
		{
			num = num * i;
			
		}
		k += num;
	}
	printf("%d", k);
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值