求助!本代码啊a,b取int极限都不溢出

P1226 【模板】快速幂

```cpp #include <iostream> #define int long long using namespace std; #define FOR(i,j,n,k) for(int i=(j);i<=(n);i+=k) #define ROR(i,j,n,k) for(int i=(j);i>=(n);i-=k) int a,b,mod; int solve(int x,int y){ if(y==0) return 1; if(y==1) return x%mod; int f=solve(x,y/2); if(y%2==1) return f*f%mod*x%mod; else return f*f%mod; } signed main(){ ios::sync_with_stdio(0); cin.tie(),cout.tie(); //freopen(".in","r",stdin); //freopen(".out","w",stdout); cin>>a>>b>>mod; cout<<a<<'^'<<b<<" mod "<<mod<<"="<<solve(a,b); return 0; } ``` @[yaodiguoan](/user/1023793)
by Humour_Fz @ 2024-01-05 20:26:08


@[XZH114514](/user/1056908) 请问是哪里有误?
by danlao @ 2024-01-05 20:27:13


@[yaodiguoan](/user/1023793) 没开long long
by Humour_Fz @ 2024-01-05 20:27:45


@[yaodiguoan](/user/1023793) `f*f` 会爆
by Humour_Fz @ 2024-01-05 20:28:03


@[XZH114514](/user/1056908) 谢谢!!!
by danlao @ 2024-01-05 20:30:22


@[yaodiguoan](/user/1023793) 过了,谢谢!
by danlao @ 2024-01-05 20:32:00


|