浅浅的问道题

Kinghero King of the summit 2023-05-12 22:24:37 2023-05-12 22:33:43 0

计算阶乘

题目背景

相信你已经知道阶乘的定义:

n!=n×(n−1)×(n−2)×…1

现在,我们给出双阶乘的定义:

当 n 为奇数时,

n!!=n×(n - 2)×(n −4)×⋯×1

当 n 为偶数时,

n!!=n×(n−2)×(n−4)×⋯×2

特别的,0!!=1。

例如,

5!!=5×3×1=15,

6!!=6×4×2=48。

题目描述

给定整数 n,请你求出 2/n!!*n! 的值。

输入格式 本题单测试点内有多组测试数据。

输入的第一行是一个整数,表示数据组数 T。接下来依次给出每组数据的输入信息。

对每组数据,输入只有一行一个整数表示给定的n。

输出格式

对每组数据,输出一行一个整数表示.

未AC代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int a,b;
	long long c = 1,d = 1,e = 2;
	cin>>a>>b;
	if(a == 0)
	{
		c = 1;
	}
	else
	{
		while(a != 1)
		{
			c *= a;
			a--;
		}
	} 
	if(b == 0)
	{
		d = 1;
	}
	else
	{
		if(b % 2 == 0)
		{
			while(b != 0)
			{
				d *= b;
				b -= 2;	
			} 
		}
		else
		{
			while(b != 1)
			{
				d *= b;
				b -= 2;
			}
		}
	}
	e = e * c / d;
	cout<<e;
	return 0;
}
{{ vote && vote.total.up }}