另一種階乘問題
時間限制:3000 ms | 記憶體限制:65535 KB
難度:1
- 描述
大家都知道階乘這個概念,舉個簡單的例子: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; } }