高精度演算法

2021-09-26 06:26:53 字數 2490 閱讀 4033

高精度乘法:

#include

using namespace std;

const

int l =

2001

;const

int ll=

4001

;string mul

(string a,string b)

,nb[l]

=,nc[ll]=;

int la=a.

size()

,lb=b.

size()

;for

(int i=la-

1;i>=

0;i--

) na[la-i]

=a[i]

-'0'

;//將字串表示的大整形數轉成i整形陣列表示的大整形數

for(

int i=lb-

1;i>=

0;i--

) nb[lb-i]

=b[i]

-'0'

;for

(int i=

1;i<=la;i++

)for

(int j=

1;j<=lb;j++

) nc[i + j -1]

+= na[i]

* nb[j]

;for

(int i=

1;i<=la+lb-

1;i++

) nc[i+1]

+= nc[i]/10

,nc[i]%=

10;int f=la+lb;

while

(nc[f]==0

&&f>1)

f--;/*if(nc[la + lb])

ans += nc[la + lb -1] +'0';*/

//如果是 0 * 10 的話答案會出現兩個零

for(

int i=f;i>=

1;i--

) ans+

=nc[i]

+'0'

;return ans;

}int

main()

高精度加法:

#include

using namespace std;

const

int ll =

501;

string add

(string a, string b)

,nb[ll]=;

int la = a.

size()

,lb = b.

size()

;for

(int i=

0;i < la;i++

)for

(int i=

0;i < lb;i++

)int max = la > lb ? la : lb;

for(

int i=

0;i < max;i++)if

(na[max]

) max++

;for

(int i=max -

1;i >=

0;i--

) ans+

=na[i]

+'0'

;return ans;

}int

main()

return0;

//如果長度相同,每一位也一樣,就返回0,說明相等

}string sub

(string a,string b)

,nb[ll]=;

int la = a.

size()

,lb = b.

size()

;for

(int i=

0;i < la;i++

)for

(int i=

0;i < lb;i++

)int max = la > lb ? la : lb;if(

cmp(a,b)==0

)}while

(!na[

--max]

&&max>0)

;//去0

max++

;for

(int i=max -

1;i>=

0;i--

) ans+

=na[i]

+'0'

;return ans;

}else

}while

(!nb[

--max]

&&max>0)

; max++

;for

(int i=max -

1;i>=

0;i--

) ans+

=nb[i]

+'0'

;return ans;}}

intmain()

演算法 高精度乘法2(高精度乘高精度)

題目描述 高精度乘,求兩個很大的非負整數相乘的結果。輸入 2個非負整數,每個一行,每個整數不超過240位。輸出 乙個整數,表示相乘的結果。例子 為了和演算法對應方便,用上面數乘下面數的方法12 5 2512 5502 5312 5為了運算方便,將上面兩數倒置,得到的結果也為倒序下標0 1234 56...

高精度演算法 791 高精度加法

給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整數長度 100000 輸入樣例 1223 輸出樣例 35注意點 1.兩個整數較大,用字串來存,這樣的話,可以呼叫它的size 方法 2.將兩個大的整數,存入vector陣列中,最好把整數...

高精度演算法

任務 高精度,計算大數乘小數 引數 乘法函式mul引數為 被乘數a,儲存最終結果的ans陣列,乘數b 結果 ans陣列中ans 0 為最高位,以此類推 include include using namespace std void mul char a,char ans,int b 任務 高精度,...