C猿


私信TA

用户名:219123

访问量:1314

签 名:

我写的代码如果运行报错,可能是使用了scanf_s或者gets_s把s删了就好

等  级
排  名 5766
经  验 1497
参赛次数 0
文章发表 32
年  龄 21
在职情况 学生
学  校 哔哩哔哩大学
专  业 自动化

  自我简介:

解题思路:先说1!加到20!的答案为2561327494111820313;所以说本题的关键是数据类型能表示数的范围大小;long long int一般分配8个字节即9.22337203685x10的18次方,用%lld打印
注意事项:

参考代码:

#include<stdio.h>

long long int stratum(int x)//计算n!的函数

{

    long long int Sn = 1;

    int i;

    for (i = x;i > 0; i--)

    {

        Sn = Sn * i;

    }

    return Sn;

}

int main()

{

    long long int Sn = 0;

    int n = 0;

    scanf("%d", &n);

    if (n > 20)printf("n不得大于20");

    else

    { 

        n++;//配合while(--n)的--n,--n先计算后赋值

        while (--n)

        {

            Sn = Sn + stratum(n);

        }        

    }

    printf("%lld", Sn);

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »