小菜


私信TA

用户名:MissD

访问量:9330

签 名:

等  级
排  名 5867
经  验 1421
参赛次数 0
文章发表 5
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

    首先题目要求的是阶乘,阶乘也就意味着前一项比后一项多一,由此,使用循环为最佳,

题目最主要是阶乘怎么算,每个阶乘的求和,这是题目的关键,

    定义四个变量,i,n,,s,sum;

   i控制循环,n为输入的阶乘数,s为中间过度变量,sum为每次的求和值。赋初值s=1;sum=0;

 s=s*i;sum=sum+s;为关键代码

还需要加一个判断n是否大于20的条件;
注意事项:
   循环变量i的初始值必须为1,否则的话s的值永远为0;

sum在循环体外输出,
参考代码:

# include<stdio.h>
int main()
{
    int i,n,sum=0,s=1;
    scanf("%d",&n);
if(n<20)
{
    for(i=1;i<=n;i++)
    {
        s=s*i;
        sum=sum+s;
    }
    printf("%d",sum);
}
return 0;
}


 

0.0分

72 人评分

  评论区

1!+2!……是什么意思啊,问什么要加感叹号?求大神告知
2021-07-22 07:12:27
我不知道为什么运行错误你还写出来给大家看误导大家,你看看正确率只有四分之一,难道作者也不会做么,如果会就请更改正确答案吧,真的错了不少
2021-07-22 07:11:47
这题目写 输入5 = 153 输入  你这就 1+2+3+4+5 也就是15怎么可能对
2021-04-29 17:58:14
各位:要求阶乘的数越大,int型的变量就装不下。各位写的时候定义更大一点的变量类型就行。
我只提供了解题思路。
2021-04-08 12:47:18
#include<stdio.h>
int main()
{
	long int sum=0;
	int n;
	scanf("%d",&n);
	int c;
	for (int i=1;i<=n;i++)
	{	int a=1;
		for(int k=1;k<=i;k++)
		{
			a=a*k;
		}
//		printf("%d\n",a);
		sum=sum+a;
	}
	printf("%ld",sum);
	
	
	
	return 0;
}
可不可以问下为什么一直错误50%,,,。
2020-02-26 21:19:53
#include<stdio.h>
void main()
{
      int n,i,j;
	  long double Sn=0,s;
	  scanf("%d",&n);
	  if(n<20)
	  {
		  for(i=1;i<=n;i++)
		  {
		  for(j=1,s=1;j<=i;j++)
			  s*=j;
		  Sn+=s;
		  }
		  printf("%.0lf\n",Sn);
	  }
}
卑微的问一下哪里有问题
2020-01-02 21:17:12
#include<stdio.h>
int main(void)
{
	int n;
	int Sn = 0;
	int m = 1;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		m = m * i;
		Sn= Sn + m;
	}
	printf("%d", sum);
	return 0;
}  

这是什么评判系统啊,这怎么错了,我真的找不出出来啊
2019-10-24 09:08:48
这个都是错的居然还写出来
2019-10-01 14:02:59