大數四則運算模板

2021-10-20 11:53:39 字數 1656 閱讀 1138

該模板能傳任意數字進去計算結果 不管是小算大的還是大的算小的都能得到正確結果 除法那裡只精確到小數點後10位數。

乘法用加法來模擬 除法用減法來模擬 下面的注釋很詳細。

#include

#include

using

namespace std;

void

(string &a,string &b)

void

del_zeros

(string &a)

bool

jud(string a,string b)

string big_add

(string a,string b)

else

a[i]

= temp +

'0';

}del_zeros

(a);

//刪除前導0

return a;

}string big_sub

(string a,string b)

(a,b)

;for

(int i = a.

length()

-1;i >=

0;i--

)else

a[i]

= a[i]

-b[i]

+'0'

;//如果本位夠 則直接減去就好了

}del_zeros

(a);

if(a =="")

return

"0";

if(flag==

false

)return

'-'+a;

return a;

}string big_mul

(string a,string b)

//保證始終a的值大於b的值

string res ="";

//結果

int num;

for(

int i = b.

length()

-1;i >=

0;i--

)return res;

}string big_div

(string a,string b)

res +

= temp_re;

}else

//否則不夠除 答案添0 繼續借位

res +

='0';if

(i == a.

length()

-1)}

//上面這一部分處理的是整數部分 接下來要處理精確到幾位小數問題

if(flag)

if(temp ==

"0")

//剛好能被整除 直接跳出迴圈

else

res +

= temp_re;

//不能被整除 繼續借位 }}

}del_zeros

(res)

;//刪除前導0

if(res[0]

=='.'

)//如果是a串比b串小 則需要在最前面添0

res =

'0'+ res;

return res;

//返回結果

}int

main()

大數四則運算

include include includeusing namespace std define m 1000000000000000 大數加法 將數字以字串的形式傳入add加法函式,在函式內部完成字串 陣列的轉換,然後在陣列中逐位進行相加,再判斷該位相加後是否需要進製,為了方便計算,我們將數字的...

大數的四則運算

演算法與思路 大數的加,減,乘演算法比較簡單,模擬列豎式的計算過程就好 除法模擬實現比較困難,採用減法的形式實現,例如對於大數a b,如果a b,則直接輸出商為0,否則,將a的最後strlen b 位重複減去b,直到得數小於b,將執行減法的次數賦給商的個位,然後將b的最後添上乙個0,相當於乘以10 ...

大數的四則運算

1.加法 輸入採用字元陣列儲存,然後將輸入存在整形陣列裡,然後逐位相加即可,同時注意進製處理。cpp view plain copy include include intmain b 555 c 555 scanf s m len m strlen m for i 0 i len m 1 i a ...