高精度計算

2021-09-02 22:53:55 字數 957 閱讀 4346

一.高精度儲存:

1.如對數採用的字串輸入

#include

#include

using namespace std;

const int n=100;//最多100位

int main()

2.直接讀入

#include

using namespace std;

const int n=100;//最多100位

int main()

a[0]=i; //共i位數

return 0;

}二.高精度數比較

int compare(int a,int b)   //比較a和b的大小關係,若a>b則為1,ab[0]) return 1;//a的位數大於b則a比b大

if (a[0]0;i--)  //從高位到低位比較

//計算當前位數字,注意:這條語句與上一條不能交換。

if(a[k+1]>0) a[0]=k+1;  //修正新的a的位數(a+b最多只能的乙個進製)

else a[0]=k;

return 0;

}四、高精度減法

int gminus(int a,int b);//計算a=a-b,返加符號位0:正數 1:負數

//若a=b,則a=0,也可在return前加一句a[0]=1,表示是 1位數0

if(flag==1) //大於  

//單獨處理key=0

for(i=1;i<=a[0];i++)a[i]=a[i]*key;//先每位乘起來

for(i=1;i<=a[0];i++) //進製

//注意上一語句退出時i=a[0]+1

while(a[i]>0)   //繼續處理超過原a[0]位數的進製,修正a的位數

return 0;

}六、高精度乘法2(高精度乘高精度)

int multi(int a,int b)

高精度計算

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

高精度計算

include include include include include using namespace std 基於c 的大整數運算 首先,為了方便後面運算,我們先定義乙個結構體 struct bign 一般來說,大整數一般是使用字串輸入的,下面將字串儲存的大整數 存放在結構體中 bign ...