封装高精度+,-,*,/


前言

将高精的+,-,*,/都用结构体封装了一遍


提示:以下是本篇文章正文内容,下面案例可供参考

一、封装高精的+,-,*,/

#include <bits/stdc++.h>
#define maxn 100	//定义数组 
using namespace std;
struct Bigint{
   		//封装结构体 
	int len,a[maxn];//为了兼顾效率与代码复杂度,用len记录位数,a记录每个数位 
	Bigint(int x=0){
   //通过初始化使得这个大整数能够表示整型x,默认为0
		memset(a,0,sizeof(a));
		for(len=1;x;len++){
   //注意数组是从一开始的 
			a[len]=x%10;
			x/=10;
		}
		len--;
	}
	int &operator[](int i){
   
		return a[i];//重载[],可以直接用x[i]代表x.a[i],编写时更自然 
	}
	void flatten(int L){
   //‘展开’也可以理解为做进位处理,将超过10的数,进一位,减去10,并且重新设置len的值 
		len=L;
		for(int i=1;i<=len;i++){
   
			a[i+1]+=a[i]/10;
			a[i]%=10;
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值