哪位大佬可以看一下取模部分怎么错了?
#include<iostream>
using namespace std;
long long n,a,b,mod=998244353,i,x,y,k,ans;
int main()
{
cin>>n;
if(n%2==0)x=1,y=2;
else x=n/2+1,y=n;
a=y,b=mod-2,k=mod;
ans=1;
while(b){
if(b%2){
ans=(ans*a)%k;
}
a=(a*a)%k;
b/=2;
}
cout<<ans*x;
}