亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lei.cpp

?? 構造大數運算類 +;-;*;/ 并測試。<br>1. 不考慮括號 <br>2. 輸入數據最大長度為40 位,要捕獲異常 <br>3. 不考慮輸入小數部分,<b
?? CPP
字號:
#include "bignum.h"
BigNum BigNum::Big_Small(BigNum&x)  // 計算x>=y
{
	int mid=0;
	Erase_Zero();
	x.Erase_Zero();
	BigNum result;
	int len=str.length();
	int x_len=x.str.length();
	result.str.resize(len);
	for (int i=len-1,j=x_len-1,k=len-1;j>=0;i--,j--,k--)
	{
		int middle;
		middle=str[i]-x.str[j]-mid;
		if (middle<0)
		{
			mid=1;
			middle=middle+10;
		}
		else mid=0;
		result.str[k]=middle+'0';
	}
	for (i=len-x_len-1,k=i;i>=0;i--,k--)
	{   
		int middle;
		middle=str[i]-'0'-mid;
		if (middle<0)
		{
			mid=1;
			middle=middle+10;
		}
		else mid=0;
		result.str[k]=middle+'0';
	}	
	return result;
}
BigNum::BigNum(string x)
{
	str=x;
}
void BigNum::Input()     
{
	string s;
	cout<<"請輸入你要計算的大數:"<<endl;
	cin>>s;
	str=s;
}
BigNum& BigNum::Erase_Zero()
{
	int length=str.length();
	for (int i=0;i<length;i++)
	{
		if (str[0]=='0')
		{
			str.erase(str.begin());
		}
		else if (str[0]=='-')
		{
			int j=1;
			while (str[j]=='0')
			{
				str.erase(1,1);
			}	
		}
		else break;
	}
	for (i=0;i<str.length();)
	{
		if (str[i]==0)
		{
			str.erase(i,1);
		}
		else i++;
	}
	return *this;
}
void BigNum::Output()
{
	cout<<"結果是:"<<endl;
	Erase_Zero();
	if(str.length()==0)cout<<"0"<<endl;
	else if (str.length()==1&&str[0]=='-')
	{
		cout<<"0"<<endl;
	}
	else cout<<str<<endl;
}
BigNum BigNum::Add(BigNum&x)
{
	BigNum add_bignum;
	Erase_Zero();
	x.Erase_Zero();
	int fir_len=str.length(),sec_len=x.str.length();
	int max_n=(fir_len>sec_len?fir_len:sec_len);
	add_bignum.str.resize(max_n+1);
	int min_n=(fir_len>=sec_len?sec_len:fir_len);
	int mid=0;
	for (int i=fir_len-1,j=sec_len-1,ii=max_n;i>=0&&j>=0;i--,j--,ii--)
	{
		int first=str[i]-'0',second=x.str[j]-'0',result;
		result=first+second+mid;
		mid=result/10;
		add_bignum.str[ii]=result%10+'0';
	}
	if (ii==0)
		{
			add_bignum.str[0]=mid+'0';  //進位99+1
		} 
	else if (fir_len>sec_len)
	{
		for (int i=fir_len-sec_len-1,ii=i+1;i>=0;i--,ii--)
		{
			int result=str[i]-'0',res;
			res=result+mid;
			mid=res/10;
			add_bignum.str[ii]=res%10+'0';
		}
		if (ii==0)
		{
			add_bignum.str[0]=mid+'0';
		} 
	}
	else if (sec_len>fir_len)
	{
		for (int j=sec_len-fir_len-1,ii=j+1;j>=0;j--,ii--)
		{
			int result=x.str[j]-'0',res;
			res=result+mid;
			mid=res/10;
			add_bignum.str[ii]=res%10+'0';
		}
		if (ii==0)
		{
			add_bignum.str[0]=mid+'0';
		}
	}
	return add_bignum;
}
BigNum BigNum::Sub(BigNum &x)
{
	BigNum sub_bignum;
	int len=str.length(),x_len=x.str.length();
	if ((str>=x.str&&len==x_len)||len>x_len) sub_bignum=Big_Small(x);
	else 
	{
		BigNum mid_sub;
		mid_sub=x.Big_Small(*this);
		int len=mid_sub.str.length();
		sub_bignum.str.resize(len+1);
		sub_bignum.str[0]='-';
		for (int i=0;i<len;i++)
		{
			sub_bignum.str[i+1]=mid_sub.str[i];
		}
	}
	return sub_bignum;

}
BigNum BigNum::operator -(BigNum&x)
{
	BigNum sub;
	Erase_Zero();
	x.Erase_Zero();
	int fir_len=str.length(),sec_len=x.str.length();
	int max_n=(fir_len>sec_len?fir_len:sec_len);
	sub.str.resize(max_n+1);
	if(str.length()>40||x.str.length()>40)throw MaxSize();
	if (str[0]=='-'&&x.str[0]=='-')
	{
		string str2;
		str2=x.str;
		x.str.erase(x.str.begin());
		sub=*this+x;
		x.str=str2;
		return sub;
	}
	else if (str[0]!='-'&&x.str[0]=='-')
	{
		string mid_s;
		mid_s=x.str;
		x.str.erase(x.str.begin());
		sub=*this+x;
		x.str=mid_s;
		return sub;
	}
	else if (str[0]=='-'&&x.str[0]!='-')
	{
		string str1;
		str1=str;
		str.erase(str.begin());
		BigNum mid;
		mid=*this+x;         ////////////////////////////
		sub.str.resize(max_n+2);
		sub.str[0]='-';
		for (int i=0,j=1;i<mid.str.length();i++,j++)
		{
			sub.str[j]=mid.str[i];
		}
		str=str1;
		return sub;
	}
	else
	{
		sub=Sub(x);	
		return sub;	 
	} 
}
BigNum BigNum::operator +(BigNum&x)
{
	BigNum add_bignum;
	Erase_Zero();
	x.Erase_Zero();
	int fir_len=str.length(),sec_len=x.str.length();
	int max_n=(fir_len>sec_len?fir_len:sec_len);
	add_bignum.str.resize(max_n+1);
	if(str.length()>40||x.str.length()>40)throw MaxSize();
	if (str[0]=='-'&&x.str[0]!='-')
	{
		string mid_s;
		mid_s=str;
		str.erase(str.begin());
		add_bignum=x.Sub(*this);
		str=mid_s;
		return add_bignum;
	}
	else if (str[0]!='-'&&x.str[0]=='-')
	{
		string mid_s;
		mid_s=x.str;
		x.str.erase(x.str.begin());
		add_bignum=Sub(x);
		x.str=mid_s;
		return add_bignum;
	}
	else if (str[0]=='-'&&x.str[0]=='-')
	{
		string str1,str2;
		str1=str,str2=x.str;
		str.erase(str.begin());
		x.str.erase(x.str.begin());
		BigNum mid;
		mid=Add(x);
		add_bignum.str.resize(max_n+2);
		add_bignum.str[0]='-';
		for (int i=0,j=1;i<mid.str.length();i++,j++)
		{
			add_bignum.str[j]=mid.str[i];
		}
		str=str1;
		x.str=str2;
		return add_bignum;

	}
	else 
	{
		add_bignum=Add(x);
		return add_bignum;
	}
}
BigNum BigNum::Mul(BigNum&x)
{
	Erase_Zero();
	x.Erase_Zero();
	BigNum mul_bignum;
	int len=str.length(),x_len=x.str.length();
	mul_bignum.str.resize(len+x_len);
	int mid=0;//進位
	for (int k=len+x_len-1;k>=0;k--)//積第k位=求和(第m位*第n位)m+n=k+1
	{
		int add=0;          
		int first,second;
		for (first=len-1;first>=0;first--)
		{
			second=k-first-1;
			if(second<x_len&&second>=0)add=add+(str[first]-'0')*(x.str[second]-'0');
		}
		add=add+mid;
		mul_bignum.str[k]=add%10+'0';
		mid=add/10;
	}
	return mul_bignum;
}
BigNum BigNum::operator *(BigNum&x)
{
	BigNum mul;
	Erase_Zero();
	x.Erase_Zero();
	int len=str.length(),x_len=x.str.length();
	mul.str.resize(len+x_len);
	if(str.length()>40||x.str.length()>40)throw MaxSize();
	if (str[0]=='-'&&x.str[0]=='-')
	{
		string str1,str2;
		str1=str,str2=x.str;
		str.erase(str.begin());
		x.str.erase(x.str.begin());
		mul=Mul(x);
		str=str1,x.str=str2;
		return mul;
	}
	else if (str[0]!='-'&&x.str[0]=='-')
	{
		string str2;
		str2=x.str;
		x.str.erase(x.str.begin());
		BigNum mid;	
		mid=Mul(x);
		mul.str.resize(len+x_len+2);
		mul.str[0]='-';
		for (int i=0,j=1;i<mid.str.length();i++,j++)
		{
			mul.str[j]=mid.str[i];
		}
		x.str=str2;
		return mul;
	}
	else if (str[0]=='-'&&x.str[0]!='-')
	{
		string str1;
		str1=str;
		str.erase(str.begin());
		BigNum mid;	
		mid=Mul(x);
		mul.str.resize(len+x_len+2);
		mul.str[0]='-';
		for (int i=0,j=1;i<mid.str.length();i++,j++)
		{
			mul.str[j]=mid.str[i];
		}
		str=str1;
		return mul;
	}
	else 
	{
		mul=Mul(x);
		return mul;
	}
}
BigNum BigNum::Div(BigNum &x,bool T)
{
	Erase_Zero();
	x.Erase_Zero();
	int len=str.length();
	int x_len=x.str.length();
	BigNum mid_x=x;
	BigNum remain;
	remain.str.resize(len);
	remain.str=str;
	BigNum quotient;
	quotient.str.resize(len);
	if (len<x_len)
	{
		quotient.str.resize(0);
		cout<<"余數";
	    remain.Output();
		return quotient;
	}
	for (int i=x_len-1,j=0;j<=len-x_len;i++,j++)
	{
		mid_x=x;
		for (int jj=i+1;jj<len;jj++)
		{
			mid_x.str.append("0");
		}
		int r_n=remain.str.length(),m_n=mid_x.str.length();
		if ((remain.str>=mid_x.str&&r_n==m_n)||r_n>m_n)
		{
			for (int mm=1;mm<10;mm++)
			{
				remain=remain.Big_Small(mid_x);
				remain.Erase_Zero();
				r_n=remain.str.length();	
				if((remain.str<mid_x.str&&r_n==m_n)||r_n<m_n)break;
			}
		
			quotient.str[j]=mm+'0';
			remain.Erase_Zero();
		}
		else quotient.str[j]='0';
	}
	cout<<"余數";
	if(T)
	{
		remain.Output();
	}
	else if((!T)&&remain.str.length()!=0)
	{
		BigNum One("1");
		quotient.Erase_Zero();
		quotient=quotient+One;
		(x-remain).Output();
	}
	else cout<<"0"<<endl;
	return quotient;
}
BigNum BigNum::operator /(BigNum&x)
{
	BigNum div;
	Erase_Zero();
	x.Erase_Zero();
	int len=str.length(),x_len=x.str.length();
	div.str.resize(len);
	if(x.str.length()==0)throw Zero();
	if(str.length()>40||x.str.length()>40)throw MaxSize();
	if (str[0]=='-'&&x.str[0]=='-')
	{
		string str1,str2;
		str1=str,str2=x.str;
		str.erase(str.begin());
		x.str.erase(x.str.begin());
		div=Div(x,true);
		str=str1,x.str=str2;
		return div;
	}
	else if (str[0]!='-'&&x.str[0]=='-')
	{
		string str2;
		str2=x.str;
		x.str.erase(x.str.begin());
		BigNum mid;	
		mid=Div(x,true);
		div.str.resize(len+1);
		div.str[0]='-';
		for (int i=0,j=1;i<mid.str.length();i++,j++)
		{
			div.str[j]=mid.str[i];
		}
		x.str=str2;
		return div;
	}
	else if (str[0]=='-'&&x.str[0]!='-')///////////
	{
		string str1,str2;
		str1=str,str2=x.str;
		str.erase(str.begin());
		BigNum mid;	
		mid=Div(x,false);
		mid.Erase_Zero();
		if(mid.str[0]=='0')
		{
			div.str.resize(0);
			return div;
		}
		div.str.resize(len+1);
		div.str[0]='-';
		for (int i=0,j=1;i<mid.str.length();i++,j++)
		{
			div.str[j]=mid.str[i];
		}
		str=str1;
		x.str=str2;
		return div;
	}
	else 
	{
		return Div(x,true);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久精品欧美| 婷婷久久综合九色综合绿巨人| 国产一区二区毛片| 欧美国产日韩精品免费观看| www.视频一区| 亚洲永久免费视频| 欧美一区二区三区成人| 国产一区视频网站| 亚洲欧洲av在线| 欧美私人免费视频| 久久9热精品视频| 欧美极品少妇xxxxⅹ高跟鞋| 91麻豆免费在线观看| 亚洲成a人v欧美综合天堂| 欧美一区三区二区| 国产成人在线色| 一区二区三区日韩在线观看| 欧美一级欧美三级| 国产成人精品一区二| 一区二区三区免费网站| 日韩美女在线视频| av男人天堂一区| 青青草一区二区三区| 亚洲国产精品成人久久综合一区| 欧洲精品一区二区| 精品制服美女丁香| 亚洲免费观看高清| 日韩欧美国产三级电影视频| 不卡的电影网站| 日本欧美在线观看| 国产精品午夜在线观看| 欧美情侣在线播放| 成人白浆超碰人人人人| 日韩激情一区二区| 亚洲天堂精品在线观看| 26uuu久久综合| 一本久久综合亚洲鲁鲁五月天| 免费av成人在线| 亚洲伦理在线免费看| 久久午夜羞羞影院免费观看| 91成人网在线| 成人免费高清视频在线观看| 亚洲福利一区二区| 亚洲日本一区二区| 久久先锋影音av鲁色资源网| 69av一区二区三区| 91丨九色丨蝌蚪富婆spa| 狠狠色丁香久久婷婷综合_中| 一区二区三区在线视频免费观看| 精品1区2区在线观看| 欧美日韩第一区日日骚| caoporen国产精品视频| 国产精品一区二区无线| 日本亚洲免费观看| 午夜久久久久久电影| 最近中文字幕一区二区三区| 久久麻豆一区二区| 精品欧美一区二区久久 | 亚洲免费电影在线| 久久亚洲春色中文字幕久久久| 欧美肥妇bbw| 欧美亚洲日本国产| 欧洲精品一区二区三区在线观看| 成人动漫一区二区在线| 国产电影一区在线| 久久爱www久久做| 美女脱光内衣内裤视频久久影院| 一区二区三区四区激情 | 一区二区三区久久| 中文字幕一区二区三区四区| 国产欧美久久久精品影院| 精品美女一区二区| 精品国产免费一区二区三区四区| 欧美一区二区免费视频| 91麻豆精品国产91久久久久久久久 | 国产精品丝袜91| 精品久久久久久亚洲综合网| 日韩欧美国产综合一区| 99国产精品国产精品久久| 成人黄色小视频| 亚洲一区二区三区四区五区黄| 激情欧美日韩一区二区| 国产欧美精品一区二区色综合 | 成人性生交大片免费看在线播放 | 国产一区二区三区在线观看免费| 老司机精品视频一区二区三区| 蜜桃av一区二区在线观看| 激情另类小说区图片区视频区| 激情成人午夜视频| 大胆欧美人体老妇| 99精品国产热久久91蜜凸| 91偷拍与自偷拍精品| 99在线精品观看| 精品视频在线免费| 日韩欧美国产电影| 国产视频一区不卡| 亚洲欧美日韩国产综合在线| 国产精品短视频| 美女视频黄久久| 久久久久久久久久久久久久久99 | 欧美日韩一本到| 欧美一二三区精品| 久久久久久久久久久久电影| 国产精品色噜噜| 亚洲二区在线视频| 国产麻豆日韩欧美久久| 99精品视频中文字幕| 欧美日韩免费高清一区色橹橹| 日韩小视频在线观看专区| 久久久精品人体av艺术| 一二三四区精品视频| 免费成人在线观看| av一二三不卡影片| 日韩欧美中文字幕一区| 国产精品婷婷午夜在线观看| 亚洲成在人线免费| 国产99久久久精品| 欧美日韩国产一区二区三区地区| 精品福利视频一区二区三区| 亚洲视频免费在线观看| 奇米精品一区二区三区四区 | 91久久人澡人人添人人爽欧美| 91精品麻豆日日躁夜夜躁| 国产精品视频免费看| 首页欧美精品中文字幕| 不卡的av在线播放| 精品国产免费久久| 亚洲综合区在线| 成人激情黄色小说| 日韩欧美亚洲国产精品字幕久久久| 国产精品日产欧美久久久久| 日本色综合中文字幕| 色欧美88888久久久久久影院| 久久亚洲精品国产精品紫薇| 亚洲mv在线观看| 色综合久久88色综合天天 | 日韩免费一区二区三区在线播放| 国产精品护士白丝一区av| 激情国产一区二区| 69堂亚洲精品首页| 亚洲一区二区三区四区在线观看 | 日本精品一级二级| 亚洲国产精品ⅴa在线观看| 免播放器亚洲一区| 欧美日韩久久一区| 日韩一区日韩二区| 国产99精品国产| 久久综合九色综合欧美亚洲| 视频一区国产视频| 欧美午夜精品久久久久久超碰| 亚洲欧洲另类国产综合| 国产成人av电影在线播放| 精品日韩欧美在线| 蜜臀av一级做a爰片久久| 欧美女孩性生活视频| 亚洲一区中文在线| 色欧美88888久久久久久影院| 中文字幕一区二区三区蜜月| 国产不卡视频一区| 久久久777精品电影网影网 | 六月婷婷色综合| 91精品国产色综合久久不卡蜜臀 | 一区二区三区四区国产精品| 99久久免费精品高清特色大片| 国产精品久线观看视频| 成人精品国产福利| 中文一区一区三区高中清不卡| 国产河南妇女毛片精品久久久| 久久久久久一级片| 国产老肥熟一区二区三区| 久久精品一区八戒影视| 国产suv精品一区二区三区 | 中文字幕一区免费在线观看| www.一区二区| 一区二区三区 在线观看视频| 在线看国产日韩| 亚洲成人自拍网| 日韩欧美中文一区二区| 久久精品国产亚洲a| 欧美一区二区三区四区五区| 欧美一级一区二区| 色哟哟精品一区| 日韩欧美一区在线| 久久免费偷拍视频| 91免费观看在线| 国产一区二区三区精品欧美日韩一区二区三区| 91精品国产综合久久久久久漫画 | 夜夜操天天操亚洲| 欧美亚洲自拍偷拍| 日韩精品免费专区| 欧美变态凌虐bdsm| 国产精品自在欧美一区| 国产精品美女久久久久久久久 | 久久综合给合久久狠狠狠97色69| 国产一区二区三区香蕉| 日本一区二区三区电影| 色哟哟亚洲精品| 精品一区二区三区免费毛片爱| 久久一夜天堂av一区二区三区| 亚洲婷婷国产精品电影人久久|