高精度乘法

2021-09-10 12:30:27 字數 842 閱讀 8958

描述

在c/c++語言中,整型所能表示的範圍一般為-231到231(大約21億),即使long long型,一般也只能表示到-263到263。要想計算更加規模的數,就要用軟體來擴充套件了,比如用陣列或字串來模擬更多規模的數及共運算。

現在輸入兩個整數,請輸出它們的乘積。

輸入輸入描述:

兩行,每行乙個正整數,每個整數不超過10000位

輸入樣例:

99101

輸出輸出描述:

一行,兩個整數的乘積

輸出樣例:

我們可以根據這個圖也就是我們乘法的過程 來思考這個問題 。

第一步 存數

第二步 處理位計算

第三步 輸出

其實 核心就在於處理位計算,

#include#includeusing namespace std;

char a[10001],b[10001];

int a[10001],b[10001],c[1000001],x,i,l3,l1,l2,j;

int main()

c[i+l2]=x;//可以看成圖中第一步的c4,即每一次乘法的最大位。

} l3=l1+l2;//考慮這個數最大的位數

while(c[l3]==0&&l3>1)

l3--;//去掉開頭的0

for(i=l3;i>=1;i--)//輸出

printf("%d",c[i]);

return 0;

}

高精度減法,高精度乘法

高精度減法 oj資料偏弱如果新增乙個101 2就錯了,下面這一步是為了防止錯誤的 if a aa 0 可能出現第一位的1被借走的的情況,所以加乙個while找第乙個不是0的 while c i 0 i include include include include include include u...

高精度乘法

問題描述 給你兩個正整數a,b,計算它們的乘積。輸入格式 第一行乙個正整數a 第二行乙個正整數b 輸出格式 一行,表示a b 樣例輸入 111222333444555666777888999 999888777666555444333222111 樣例輸出 提示 a,b分別不超過100000位 ff...

高精度乘法

include include include includeusing namespace std const int maxn 5000 inline int get struct data data operator const data b for int i 1 i c.len i whi...