1014题阶乘求和--答案错误


首先 0!=1,不是0,所以5的结成求和结果是154,不是153。

1014题阶乘求和的代码如下。

 long long Sn = 1,Idle=1;是防止出现0!=0的错误情况。

Idle *= i;这是累乘,实现阶乘。

Sn += Idle;这是累加,实现阶乘结果求和。

下面的代码提交后,结果是0分。求解?

//////////////////////////////////////////////

#include

int main(void)

{

    int n;

    long long Sn = 1,Idle=1;

     

    scanf("%d", &n); 

     

    for (int i = 1; i <=n; i++)

    {

        Idle *= i;

        Sn += Idle;

    }

    printf("%lld", Sn); 

    return 0;

}

/////////////////////////////////////////

这个题的100分代码如下:

////////////////////////////////////////

#include<stdio.h>



int main()

{

int n;

long long Sumber=0;

    long long Factorial=1;

scanf("%d",&n);

    for(int i=1;i<=n;i++)

    {

        Factorial*=i;

        Sumber+=Factorial;

    }

    printf("%lld\n",Sumber);

return 0;

}

/////////////////////////////////////////////////

还是觉得0!=1不计算容易引起误会,我几乎花了一周搜索尝试才得到“正确”答案。

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

WillFu 7月前 回复TA

正确代码 #include<stdio.h> int main() { int n; long long Sumber=0; long long Factorial=1; scanf("%d",&n); for(int i=1;i<=n;i++) { Factorial*=i; Sumber+=Factorial; } printf("%lld\n",Sumber); return 0; }

WillFu 7月前 回复TA

@WillFu 把Sumber和Factorial类型改为long long 就对了。#include<stdio.h> int main() { int n; long long Sumber=0; long long Factorial=1; scanf("%d",&n); for(int i=1;i<=n;i++) { Factorial*=i; Sumber+=Factorial; } printf("%lld\n",Sumber); return 0; }

WillFu 7月前 回复TA

如下代码得50分。不知道原因,我只改了0!=0,然后就得了50分。 #include<stdio.h> int main() { int n; int Sumber=0; int Factorial=1; scanf("%d",&n); for(int i=1;i<=n;i++) { Factorial*=i; Sumber+=Factorial; } printf("%d\n",Sumber); return 0; }