类型转换
  • 板块灌水区
  • 楼主冷却心月明かり
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/6/30 21:52
  • 上次更新2023/10/27 22:12:08
查看原帖
类型转换
431658
冷却心月明かり楼主2022/6/30 21:52

我在验证多项式时发现的。

代码:

#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++居然如此高级

2022/6/30 21:52
加载中...