我在验证多项式时发现的。
代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct MN{
int val;
const MN operator ^(const int &k){
MN res={1};
for(int i=1;i<=k;i++)res.val*=val;
return res;
}
MN operator +(const MN &k){
MN res={val+k.val};
return res;
}
MN operator *(const MN &k){
MN res={val*k.val};
return res;
}
}x;
MN operator +(const int &a,const MN &b){
MN res={a+b.val};
return res;
}
int main(){
MN x,y;
cin>>x.val;
MN res1=(1+x)*(x^2+1)*(x^4+1)*(x^8+1);
MN res2=1+(x^8)+(x^4)+(x^12)+(x^2)+(x^10)+(x^6)+(x^14)+x+(x^9)+(x^5)+(x^13)+(x^3)+(x^11)+(x^7)+(x^15);
printf("%d\n%d",res1,res2);
return 0;
}
看最后的printf,res1和res2的MN(MathNumber)类型似乎被隐式转换为了int
C++居然如此高级