瞎折腾


私信TA

用户名:chenbin

访问量:51738

签 名:

等  级
排  名 42
经  验 8504
参赛次数 0
文章发表 74
年  龄 0
在职情况 学生
学  校 中南大学
专  业

  自我简介:

解题思路:
先判断输入的n如果等于0,则返回sn=1;否则进入while(i<=n)循环,执行n次。考虑到阶乘可能超过int类型所表示的数据范围,应设long long jie=1,sn=0;




注意事项:
printf("%lld",sn);是输出64位有符号的整数



参考代码:

#include<stdio.h>

int main()

{

    int n,i=1;

    long long jie=1,sn=0;

    scanf("%d",&n);

    if(n==0)

    {

        sn=1;

    }

    else

    {

        while(i<=n)

        {

            jie*=i;

            sn+=jie;

            i++;

        }

    }

    printf("%lld",sn);

    return 0;

}


 

0.0分

0 人评分

  评论区