计算双阶乘

590 词

题目描述

定义$N$的双阶乘:

$$N!!=N∗(N−2)∗(N−4)∗….i(i=1ori=2)$$

比如$5!!=5∗3∗1=15$

而$6!!=6∗4∗2=48$

特别的我们定义$!=1!!=1$

给定$N$你的任务是计算出$N!!$(你可以假设答案不超过$int$ 范围)

输入

多组输入,每行一个整数$N$

输出

你的任务是计算出$N!!$(你可以假设答案不超过$int$ 范围)

提示:需要分奇偶分别计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,s,x;
while(scanf("%d",&n)!=EOF){
s=n;
if(n%2==0){
while(n>2){
x=n-2;
s=s*x;
n=x;
}
cout<<s<<endl;}
else{
while(n>1){
x=n-2;
s=s*x;
n=x;
}
cout<<s<<endl;}
}
return 0;
}