例题2-4 阶乘之和

输入n,计算S=1!+2!+3!+.....n!的末6位(不含前导0)。n<=10^-6,n!表示前n个正整数之积。

样例输入:

10

样例输出:

37913

//阶乘之和 <不考虑数据范围>
#include<stdio.h>
main()
{
  int i,j,sum=0,n,sub;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
  	sub=1;
	for(j=1;j<=i;j++)
  	{
  		sub=sub*j;
  		//printf("%d\n",sub);
	}
	//printf("%d\n",sub);
	sum=sum+sub;
  }
  printf("%d",sum%100000);
} 
//阶乘之和 <考虑数据范围>
#include<stdio.h>
main()
{
  int i,j,sum=0,n,sub;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
  	sub=1;
	for(j=1;j<=i;j++)
  	{
  		sub=sub*j%100000;
  		//printf("%d\n",sub);
	}
	//printf("%d\n",sub);
	sub=sub;
	sum=sum+sub;
  }
  printf("%d",sum%100000);
} 
模运算可以再循环内部进行避免数据越界

猜你喜欢

转载自blog.csdn.net/weixin_27848283/article/details/80979498
2-4