题目地址
将原来的每个数相乘变为i不大于n的所有奇数相乘例如:5!!=1*3*5.
现在你的任务是求出1!!+2!!......+n!!的正确值(n<=20)
分析:
主要用到了一次递归求和,很简单。
代码:
#include<iostream>
using namespace std;
//递归求和
int recursionSum(int n)
{
if( n==1 || n==0) return 1;
int R=1;
for(int i=1;i<=n;i++)
{
if(i%2==0) continue;
R*=i;
}
return R+recursionSum(n-1);
}
int main()
{
int a,n,R; //a(a<=20) (n<=20)
cin>>a;
while(a--)
{
cin>>n;
cout<<recursionSum(n)<<endl;
}
return 0;
}
附:
关于官方的最优程序,不知道这样做有什么意义,还要程序做什么?