C语言 利用静态变量求s=1+2!+3!+……+n!的阶乘总和 C语言求阶乘的和。计算1!+2!+3!……+n!

c\u8bed\u8a00\u6c42s=1!+2!+3!+\u2026+n!(n\u7531\u8f93\u5165\u51b3\u5b9a\uff09\u3002\u6c42\u5927\u795e\u80fd\u8be6\u7ec6\u89e3\u8bfb\u4e00\u4e0b\u8fd9\u4e2a\u7a0b\u5e8f\uff0c\u5c24\u5176\u662ffor\u8bed\u53e5\u91cc\u9762\u662f\u4ec0\u4e48\u610f\u601d

\u7b2c\u4e00\u4e8c\u884c\u4ee3\u7801\uff1aint i,j,n;long int t=1,sum=0;//\u5b9a\u4e49\u4e86\u4e09\u4e2a\u6574\u6570\u578b\uff08\u77ed\u6574\u578b\uff09\u7684\u53d8\u91cf\uff0c\u5b9a\u4e49\u4e24\u4e2a\u957f\u6574\u6574\u578b\u53d8\u91cf\u5e76\u521d\u59cb\u5316\u3002
\u7b2c\u4e09\u884c\u4ee3\u7801\uff1aprintf("input n:",&n);//\u63d0\u793a\u8f93\u5165\u3002
\u7b2c\u56db\u884c\u4ee3\u7801\uff1ascanf("%d",&n);\u5229\u7528scanf\uff08\uff09\u51fd\u6570\u8f93\u5165n\u3002
\u7b2c\u4e94\u884c\u4ee3\u7801\uff1afor (i=1;i<=n;i++)//\u8fdb\u5165for\u5faa\u73af\uff0c\u5916\u90e8for\u5faa\u73af\u7684\u4e3b\u8981\u4f5c\u7528\u662f\u8fdb\u884c\u9636\u4e58\u7684\u6c42\u548c\u3002
\u7b2c\u516d\u4e03\u516b\u884c\u4ee3\u7801\uff1at=1;for(j=1;j<=i;j++)t=t*j;//\u5f15\u7528t\u8fd9\u4e2a\u53d8\u91cf\u8fdb\u884c\u5bf9i\u8fd9\u4e2a\u9636\u4e58\u7684\u8ba1\u7b97\uff0c\u5e76\u5c06\u7ed3\u679c\u50a8\u5b58\u5728t\u4e2d\u3002\u5185\u90e8\u7684for\u5faa\u73af\u7684\u4e3b\u8981\u4f5c\u7528\u662f\u8ba1\u7b97\u9636\u4e58\u3002
\u7b2c\u4e5d\u884c\u4ee3\u7801\uff1asun=sum+t;//\u8ba1\u7b97\u9636\u4e58\u7684\u548c\u3002
\u7b2c\u5341\u884c\u4ee3\u4ee3\u7801\uff1aprintf("n!=%ld",sum);//\u5229\u7528printf()\u51fd\u6570\u5bf9\u7ed3\u679c\u8fdb\u884c\u8f93\u51fa\u3002
\u6269\u5c55\u8d44\u6599\uff1a

\u5faa\u73af\u7684\u5d4c\u5957\uff1a
1\uff0cwhile\u5faa\u73af\u5305\u542bwhile\u5faa\u73af\u7684\u5185\u5c42\u5faa\u73af\u3002
2\uff0cdo\u2026while\u5faa\u73af\u5305\u542bdo\u2026while\u5faa\u73af\u7684\u5185\u5c42\u5faa\u73af\u3002
3\uff0cfor\u5faa\u73af\u5305\u542bfor\u5faa\u73af\u7684\u5185\u5c42\u5faa\u73af\u3002
4\uff0cwhile\u5faa\u73af\u5305\u542bdo\u2026while\u5faa\u73af\u7684\u5185\u5c42\u5faa\u73af\u3002
5\uff0cfor\u5faa\u73af\u5305\u542bwhile\u5faa\u73af\u7684\u5185\u5c42\u5faa\u73af\u3002
6\uff0cdo\u2026while\u5faa\u73af\u5305\u542bfor\u5faa\u73af\u7684\u5185\u5c42\u5faa\u73af\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1\u2014C\u8bed\u8a00

\u8f93\u5165\u7684a\u4e0d\u80fd\u592a\u5927\uff0c\u5426\u5219\u6574\u578b\u4f1a\u6ea2\u51fa\u7684\uff01\uff01
#include
main()
{
int a,b,c,s,t;
s=1;
t=0; // 1 -----> 0
scanf("%d",&a);
for(c=1;c<=a;c++)
{
s *= c;
t += s;
}
printf("%d\n",t);
}

#include <stdio.h>  
int fac(int);  
int main()  
{
    int i,sum=0,n;
    printf("请输入n的值:");
    scanf("%d",&n);  
    for(i=1;i<=n;i++)  
      s+=fac(i);
    printf("sum=%d
",s);
    return 0;  
}  
int fac(int n)  
{  
    static int f=1;  
    f=f*n;  
    return f;  
}


第五行
int i,sum=0,n;
应该改为
int i,sum=0,n,s;
因为后面用到了s
但是前面没定义s

扩展阅读:扫一扫题目出答案 ... c语言 如何判断为三位数 ... 延时c# ... c语言利用递归求阶乘 ... c语言常量判断方法 ... c语言利用数组排序 ... c语言中 是取余还是去整 ... c语言中求π ... 扫题目出答案神器 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网