另一种阶乘问题
- 描述
-
大家都知道阶乘这个概念,举个简单的例子: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!!的正确值
- 样例输入
-
2 3 5
- 样例输出
-
5 23
#include <iostream> using namespace std; int solve(int n){ if(n == 1 || n == 2) return 1; if(n%2) return n*solve(n-2); else return solve(n-1); } int main(){ int a; cin >> a; for(int icase = 0 ; icase < a; ++ icase){ int n; cin >> n; int res = 0; for(int i = 1; i <= n; ++ i) res+=solve(i); cout<<res<<endl; } }