有没有逼神,帮我看看快速幂做的为啥老是爆负数?
#include<bits/stdc++.h>
using namespace std;
const double N=((sqrt(5)+1)/2);
const int mod=998244353;
long long fpow(double n,long long m) {
if(m==1) {
return int(ceil(n))%mod;
}
else if(m==0) {
return 1;
}
if(m%2) {
return int(ceil(n*fpow(n,m-1)))%mod;
}
else return fpow(n*n,m/2)%mod;
}
signed main() {
long long n;
cin>>n;
while(n--) {
long long t;
cin>>t;
cout<<fpow(N,t)%mod<<"\n";
}
return 0;
}