彩笔不会高精度,求救
  • 板块学术版
  • 楼主daduoli
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/4/13 11:40
  • 上次更新2023/10/23 18:37:12
查看原帖
彩笔不会高精度,求救
107154
daduoli楼主2023/4/13 11:40
struct data {
	int num[114514],len;
	data() {len=0;memset(num,0,sizeof(num));}
	data operator +(data a) {
		a.len=max(a.len,len);
		for(int i=1;i<=a.len;++i) {
			a.num[i]=a.num[i]+num[i]+a.num[i-1]/10;
			a.num[i-1]%=10;
		}
		while(a.num[a.len]>=10) {
			a.num[a.len+1]=a.num[a.len]/10;
			a.num[a.len]%=10; ++a.len;
		}
		return a;
	}
	data operator *(data a) {
		data c;
		c=a;
//		for(int i=1;i<=a.len;++i) a.num[i]=0;
//		a.len=c.len+len-1;
//		for(int i=c.len;i>=1;--i) 
//			for(int j=len;j>=1;--j) {
//				a.num[i+j-1]=(a.num[i+j-1]+c.num[i]*num[j]);
//			}
//		for(int i=1;i<=a.len;++i) {
//			a.num[i]=(a.num[i]+a.num[i-1]/10);
//			a.num[i-1]%=10;
//		}
//		while(a.num[a.len]>=10) {
//			a.num[a.len+1]=a.num[a.len]/10;
//			a.num[a.len]%=10; ++a.len;
//		}
		return a;
	}
	void print(data a) {
		for(int i=a.len;i>=1;--i) printf("%d",a.num[i]);
	}
	void cle(data &a) {
		for(int i=1;i<=a.len;++i) a.num[i]=0;
		a.len=0;
	}
};

不知道为什么重载乘法运算符里面定义一个c就爆炸

2023/4/13 11:40
加载中...