最近做了一些高精度計算問題,一般來說解題辦法都差不多,都是通過字串來操作的,下面是解題模板。
//清零操作
string clearstr(string s){
if(s=="")
return s="0";
while(s.length()>0&&s[0]==『0』)
s.erase(0,1);//刪除第乙個零;
if(s=="")
return s="0";
else
return s;
//加班操作
string addition(string s1,string s2){
string s;
while(s1.length()>s2.length())
s2='0'+s2;
while(s2.length()>s1.length())
s1='0'+s1;
//兩個數都加0,防止進製溢位。
s1='0'+s1;
s2='0'+s2;
for(int j=s2.length()-1;j>=0;j--){
s1[j]=s1[j]+(s2[j]-'0');
if(s1[j]>'9'){
s1[j] = s1[j]-10;
s1[j-1]=s[j-1]+1;
s=clearstr(s1);
return s;
//減法操作
高精度計算
include include includeusing namespace std const int l 110 string add string a,string b 只限兩個非負整數相加 nb l int la a.size lb b.size for int i 0 ilb la lb ...
高精度計算
一.高精度儲存 1.如對數採用的字串輸入 include include using namespace std const int n 100 最多100位 int main 2.直接讀入 include using namespace std const int n 100 最多100位 int...
高精度計算
include include include include include using namespace std 基於c 的大整數運算 首先,為了方便後面運算,我們先定義乙個結構體 struct bign 一般來說,大整數一般是使用字串輸入的,下面將字串儲存的大整數 存放在結構體中 bign ...