题意:
两种办法:找规律或直接推导
-
找规律:
-
推导
代码
#include <iostream>
#include <algorithm>
#include <sstream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <stack>
#include <queue>
#include <cmath>
#include <map>
#include <set>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef unsigned long long ull;
const long double PI = acos(-1);
const int maxn=1e5+5;
const int mod=998244353;
const int N = 2e6+10;
ll qpow(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b&1) ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans%mod;
}
ll inv(ll a)
{ return (qpow(a, mod-2)+mod)%mod; }
ll f[N+10];
void init()
{
f[0]=1;
for(int i=1;i<N;i++)
f[i]=i*f[i-1]%mod;
}
int main()
{
int n;
init();
while(scanf("%d",&n)!=EOF)
{
ll tmp=1;
ll ans=(f[n]*f[n]%mod*inv(f[2*n+1])+mod)%mod;
printf("%lld\n",ans);
}
}