nyoj_另一种阶乘问题

来源:互联网 发布:java jsonarray 追加 编辑:程序博客网 时间:2024/05/02 11:11
另一种阶乘问题

大家都知道阶乘这个概念,举个简单的例子:5!=1*2*3*4*5.现在我们引入一种新的阶乘概念,将原来的每个数相乘变为i不大于n的所有奇数相乘例如:5!!=1*3*5.现在明白现在这种阶乘的意思了吧!

现在你的任务是求出1!!+2!!......+n!!的正确值(n<=20)

输入
第一行输入一个a(a<=20),代表共有a组测试数据
接下来a行各行输入一个n.
输出
各行输出结果一个整数R表示1!!+2!!......+n!!的正确值
样例输入
235
样例输出
523
这道题的关键是求每一个数的阶乘,然后再相加求和即可。
#include <iostream>  using namespace std;  int cheng(int m)  {      int s = 1;       for(int i = 1; i <= m; i+=2)          s *= i;      return s;  }    int main()  {      int n,i,m;      cin>>n;      while(n--)      {              cin>>m;          int s = 0;          for( i = 1; i <= m; i++)              s += cheng(i);          cout<<s<<endl;      }  return 0;}
所以我先构造一个求阶乘的函数cheng(),然后在主函数求和的循环中相加即可。


0 0
原创粉丝点击