TalRasha


私信TA

用户名:TalRasha

访问量:1612

签 名:

等  级
排  名 49307
经  验 293
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 BUPT
专  业

  自我简介:

解题思路:
题意很简单,是一个阶乘累加的算法设计。

如果要实现这个算法,就要做到两个工作,先分别阶乘,再累加。

我设计了一个子程序用于阶乘。

注意事项:
阶乘是一个让数值大小级数级倍增的算法,普通的int求和时会在n值极小时就溢出。所以关键在于存放最后结果和中间阶乘时候的两个值的声明 long long.

参考代码:

#include <iostream>
using namespace std;
long long lvmultiple(int);//阶乘声明
int main()
{
    int n;
    long long sum=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        sum=sum+lvmultiple(i);
    }
    cout<<sum<<endl;
    return 0;
}
long long lvmultiple(int a)//阶乘实现
{
    long long sum=1;
    for(int i=1;i<=a;i++)
        sum=sum*i;
    return sum;
}


 

0.0分

3 人评分

  评论区

  • «
  • »