高精度計算

2021-09-28 10:40:16 字數 1162 閱讀 5444

#include

#include

#include

#include

#include

using namespace std;

//基於c++的大整數運算

//首先,為了方便後面運算,我們先定義乙個結構體

struct bign};

//一般來說,大整數一般是使用字串輸入的,下面將字串儲存的大整數

//存放在結構體中

bign change

(char str)

return a;

}//比較兩個大整數的大小

intcompare

(bign a,bign b)

return0;

//兩個數相等 }}

//下面是大數的四則運算法則

bign add

(bign a,bign b)

if(carry!=0)

return c;

}//值得注意的是,上面的演算法的條件都是非負整數,那麼如果有乙個數是負數怎麼辦呢????

//如果有乙個數字為負數,我們可以使用高精度減法

bign sub

(bign a,bign b)

} c.d[c.len++

]=a.d[i]

-b.d[i];}

while

(c.len-

1>=

1&&c.d[c.len-1]

==0)//去除高位為0的!同時保留乙個最低位

return c;

}//高精度的乘法運算規則

bign multi

(bign a,

int b)

while

(carry!=0)

return c;

}//高精度與低精度的除法

bign divide

(bign a,

int b,

int&r)

}while

(c.len-

1>=

1&&c.d[c.len-1]

==0)return c;

}void

print

(bign a)

}int

main()

高精度計算

最近做了一些高精度計算問題,一般來說解題辦法都差不多,都是通過字串來操作的,下面是解題模板。清零操作 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 ...

高精度計算

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...