解题思路:
先判断输入的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分

1 人评分

  评论区

  • «
  • »