大數加減乘除

2021-07-14 23:35:17 字數 1077 閱讀 7314

#include#include#include#include#includeusing namespace std;

//compare比較函式:相等返回0,大於返回1,小於返回-1

int compare(string str1,string str2)

if(cf!=0) str=char(cf+'0')+str;

return str;

}//高精度減法

//只能是兩個正數相減,而且要大減小

string sub(string str1,string str2)//高精度減法

else

}str.erase(0,str.find_first_not_of('0'));//去除結果中多餘的前導0

return str;

}//高精度乘法

//只能是兩個正數相乘

string mul(string str1,string str2)

if(cf!=0) tempstr=char(cf+'0')+tempstr;

}str=add(str,tempstr);

}str.erase(0,str.find_first_not_of('0'));

return str;

}//高精度除法

//兩個正數相除,商為quotient,餘數為residue

//需要高精度減法和乘法

void div(string str1,string str2,string "ient,string &residue)

if(str1=="0")//判斷被除數是否為0

int res=compare(str1,str2);

if(res<0)

else if(res==0)

else}}

residue=tempstr;

}quotient.erase(0,quotient.find_first_not_of('0'));

if(quotient.empty()) quotient="0";

}int main()

return 0;

}

大數加減乘除

對於大數的加減乘除都要先把輸入的大數字串轉成倒序的陣列,再進行運算。字串的處理 scanf s s a1,b1 len 0 for int i strlen a1 1 i 0 i len 0 for int i strlen b1 1 i 0 i len max strlen a1 strlen b...

大數的加減乘除

當數的位數非常大而常規的資料型別不足以儲存的時候,可以考慮使用大數。即用乙個長的陣列來儲存相應的位數,如int a 100 a的每一位儲存一位數字或幾位數字,根據常規的加減乘除運算對陣列進行操作。使用string型別對陣列進行操作,雖然比用整型簡便,但可 能增加了執行時間。pku1001 expon...

大數運算(加減乘除)

加法 void add char a,char b,char d for i len i 1 i if c i 48 len else break for i 0 i len i d i c len i view code 減法1 d2 d1,如果需要比較大小自己加乙個不麻煩。void dec ch...