求助
  • 板块学术版
  • 楼主zjr2014
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/11/21 16:56
  • 上次更新2024/11/21 20:04:45
查看原帖
求助
1050483
zjr2014楼主2024/11/21 16:56

谁能帮我写个高精除?太蒻了不会写qwq

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
class big{
public:
	ll len;
	map<ll,ll>mp;
	big(){
		len=0;
	}
	big(int x){
		while(x){
			mp[++len]=x%10;
			x/=10;
		}
	}
	big(ll x){
		while(x){
			mp[++len]=x%10;
			x/=10;
		}
	}
	big(string x){
		for(ll i=x.size();i>=1;i--){
			mp[++len]=x[i-1]-48;
		}
	}
	big(char x[]){
		for(ll i=strlen(x);i>=1;i--){
			mp[++len]=x[i-1]-48;
		}
	}
	big operator=(string x){
		len=0;
		for(ll i=x.size()-1;i>=0;i--){
			mp[++len]=x[i]-48;
		}
		return *this;
	}
	big operator=(char x[]){
		len=0;
		for(ll i=strlen(x)-1;i>=0;i--){
			mp[++len]=x[i]-48;
		}
		return *this;
	}
	big operator+(big b){
		for(ll i=1;i<=max(len,b.len);i++){
			mp[i]+=b.mp[i];
			mp[i+1]+=mp[i]/10;
			mp[i]%=10;
		}
		len=max(len,b.len);
		if(mp[len+1]){
			len++;
		}
		return *this;
	}
	big operator-(big b){
		for(ll i=1;i<=len;i++){
			mp[i]-=b.mp[i];
			mp[i+1]+=(mp[i]-9)/10;
			mp[i]+=10;
			mp[i]%=10;
		}
		while(!mp[len]&&len!=1){
			len--;
		}
		return *this;
	}
	big operator*(big b){
		big c;
		for(int i=1;i<=len;i++){
			for(int j=1;j<=b.len;j++){
				c.mp[i+j-1]+=mp[i]*b.mp[j];
				c.mp[i+j]+=c.mp[i+j-1]/10;
				c.mp[i+j-1]%=10;
			}
		}
		c.len=len+b.len;
		if(!c.mp[c.len]){
			c.len--;
		}
		return c;
	}
	big operator/(big b){
		
	}
	big operator%(big b){
		return (*this)-(*this)/b*b;
	}
	big operator+=(big b){
		return (*this)=(*this)+b;
	}
	big operator-=(big b){
		return (*this)=(*this)-b;
	}
	big operator*=(big b){
		return (*this)=(*this)*b;
	}
	big operator/=(big b){
		return (*this)=(*this)/b;
	}
	big operator%=(big b){
		return (*this)=(*this)%b;
	}
	big operator++(){
		return (*this)+=1;
	}
	big operator--(){
		return (*this)-=1;
	}
	void input(){
		string s="\0";
		cin>>s;
		(*this)=s;
	}
	void output(){
		for(ll i=len;i>=1;i--){
			cout<<mp[i];
		}
	}
};                             
int main(){
	
	return 0;
}
2024/11/21 16:56
加载中...