题目链接:传送门
题意:
求解一个排列组合的公式,需要用到虚数。
代码如下:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD=998244353;
ll n,ans;
ll quick(ll a,ll b){
ll ret=1;
while(b){
if(b&1)ret=ret*a%MOD;
a=a*a%MOD,b>>=1;
}
return ret;
}
int main(){
while(scanf("%lld",&n)!=EOF){
ans=quick(2,n-2);
if((n/4)&1)ans-=1ll*2*quick(4,n/4-1)%MOD;
else ans+=1ll*2*quick(4,n/4-1)%MOD;
while(ans<0)ans+=MOD;
ans%=MOD;
printf("%lld\n",ans);
}
return 0;
}