解题思路:

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

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

    定义四个变量,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 n, temp = 1;
	long double sum = 0;
	scanf("%d", &n);
	
	while (n != 0)
	{
		for (int i = 0,k = n; i < k; i++)
		{
			
			temp = temp * (k - i);
		}
		sum = sum + temp;
		n--;
		temp = 1;
	}
	
	printf("%.0Lf", sum);
	return 0;
}
答案错误50%,这个哪里错了?
2019-09-08 16:17:43
你一个int 能装下这么大的数么。。。
2019-06-18 01:34:00
为什么编译器没出错,放到网站上就错?
2019-04-06 16:41:40
不应该用long int 吗?
2019-02-22 15:16:13
#include<stdio.h>
int main()
{
	int i=1,n;
	long double sn=0,sum=1;
	scanf("%d",&n);
	if(n<21)
	{
	while(i<=n)
	{
		sum=sum*i;
		sn=sn+sum;
		i++;
	}
	printf("%.0Lf\n",sn);
	}
	return 0;
}
终于过了,必须得用long double
2019-02-21 22:55:03
#include<stdio.h>
int main()
{
    int n,i;
    long double Sn=0,a;
    scanf("%d",&n);
    if(n==0)
    	Sn=1;
    else
    {
  	  for(;n>0;n--)
 	   {
    		a=1;
    		for(i=n;i>0;i--)
    			a=a*i;
    		Sn=Sn+a;
 	   }
    }
    printf("%d",Sn);
	return 0;
}
这个错在哪儿?搞不掂了!!!
2019-02-06 16:49:31
错误50%,这个题出的应该是for循环的嵌套,需要两个for循环来解决问题。
2018-12-17 20:26:30
要用long long,int不行的
2018-11-26 15:07:33