與加減不同的地方,乘除法是用乙個數的某一位乘或除另乙個數的所有位。
推薦先學完高精度加法和減法。
高精度減法詳解
高精度加法詳解
儲存方法和最高位去零方法差不多。
這裡具體講解實現乘法豎式方法的方法。
首先乙個乘數的一位乘以另乙個乘數的全部位數,可以用二重迴圈實現。
發現c陣列的下標是a,b陣列下標之和。
明白以上兩點,離寫出**也不遠了。
接下來直接看**吧。
**實現:
#include
#include
using namespace std;
#define max 1000000
char a[max]
,b[max]
;int a[max]
,b[max]
,c[2
*max]
,temp,lena,lenb,lenc;
bool flag1=true,flag2=true;
intmain()
if(b[0]
=='-')if
(flag1==true&&flag2==false||flag1==false&&flag2==true)
cout<<
"-";
for(
int i=
0;i++i)
a[i]
=a[lena-
1-i]
-'0'
;for
(int i=
0;i++i)
b[i]
=b[lenb-
1-i]
-'0'
;for
(int i=
0;i++i)
c[i+lenb]
=temp;
}for
(int i=lenc-
1;i>=0;
--i)
else
}for
(int i=lenc-
1; i>=
0; i--
)return0;
}
例題練習:
求兩數的積。
兩行,兩個整數。
一行乙個整數表示乘積。
輸入 #1
1
2
輸出 #1
2
每個數字不超過 10200010^102000 ,需用高精。 高精度減法,高精度乘法
高精度減法 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...