高精度乘法

2022-03-13 06:46:23 字數 1222 閱讀 7075

今天算是假期集訓的第一天,第一次一整天只學資訊,刺激啊~~~雖然很累,但是還是要整理一下嘛。

高精度

之前學過高精度加法,所以不多說,直接出**:

#include#include

using

namespace

std;

intmain()

for(int i=0;i)

m=0;

for(int i=0;i1;i++)

l=max(l1,l2);

for(int i=l;i>=0;i--)

if(c[i]==0)l--;

else

break

;

for(int i=l;i>=0;i--)

if(k==1

) cout

<<"0"

;

return0;

}

今天新學了乙個高精乘法,總體思路是一樣的,無非分為3個模組,分別是:讀入數字,進行運算,輸出得數。

第一點,讀入數字。和加法一樣,讀入乙個字串,再一一倒著轉換為整形陣列。(倒著存一是為了對齊末尾,二是為了方便)

第二點,進行運算。核心**段:

for(int i = 1;i <= l1;i++)

c[i + l1] = x;

}

這個是整個**的核心,主要難點是進製,進製解決了,整個程式就沒什麼難度了。(不要忘了  c[i + l1] = x; 進行最後一位的進製)

最後輸出得數,除了刪除前導零,沒什麼難度。

**如下:

#include#include

#include

using

namespace

std;

char a1[100],b1[100

];int a[100] = ,b[100] = ,c[205] = ;

intmain()

for(int i = 0;i < l2; i++)

for(int i = 1;i <= l1;i++)

c[i + l1] =x;

} l = l1 +l2;

for(int i = l;i > 1; i--)

for(int i = l;i >= 1;i--)

return0;

}

高精度減法,高精度乘法

高精度減法 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...