小菜


私信TA

用户名:MissD

访问量:9342

签 名:

等  级
排  名 5884
经  验 1422
参赛次数 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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

#include<stdio.h>
int main()
{
	int Sn, n,An;
	int i;
	An = 1;
	Sn = 0;
	scanf("%d", &n);
	if (n < 20)
	{
		for (i = 1; i <= n; i++)
		{
			An = An * i;
			Sn = Sn + An;
		}
		printf("%d", Sn);
	}
	return 0;
}
这个是哪里错了
2018-11-02 14:40:56
#include<stdio.h>

int factorial_fun(int n);

int main(void)
{
    int n,i,Sn=0;
    printf("Please enter a number(no more than 20):");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        Sn+=factorial_fun(i);
    }
    printf("%d",Sn);
    return 0;
}

int factorial_fun(int n)
{
    int result = 1, i;
    for(i=n; i>=1; i--)
        result = result * i;
    return result;
}
2018-09-13 13:00:01
#include<stdio.h>
int main()
{
	int n,i,sn=0,t=1;
	scanf("%d",&n);
	if(n<=20)
	{
	    for(i=1;i<=n;i++)
    	{
    		t=t*i; 
    		sn=sn+t;
    	}
    	printf("%d",sn);
    }
	return 0;
}

这个代码为什么会显示答案错误呢?
2018-08-12 21:00:49
#include<stdio.h>
int main()
{
    int n,i;
	long double sn=1,sum=0;
	
	scanf("%d",&n);

	if(n<=20)
	{
	   for(i=1;i<=n;i++)
	   {	sn=i*sn;
	        sum=sum+sn;
	   }
	 }
	printf("%.0Lf",sum);
	return 0;}
回答上面问题    用long double 就不会出现这个问题
2018-07-19 15:01:14
参考代码提交上去是答案错误
2018-05-28 12:02:46