大數思維 乘法 除法

2021-09-11 00:09:42 字數 2645 閱讀 4493

(整型)大數乘法

#include

#include

#include

#include

using

namespace std;

intmain()

p = a[i]

-'0'

;//存放位上的資料

num =0;

//初始化進數為 0

k = t;

//初始化起始位置

for(

int j = b.

size()

-1; j >=0;

--j)

q = b[j]

-'0'

; temp = p * q + num + c[k]

;//乘積+進數+本位上原來的數

c[k]

= temp %10;

//對數取模才是 留在該位的數

num = temp /10;

//進數

++k;

} c[k]

= num;

//將剩餘的數 存放在下一位

++t;}if

((a[0]

=='-'

&& b[0]

!='-')||

(a[0]!=

'-'&& b[0]

=='-'))

for(

int i = k; i >=0;

--i)

//排除掉前導 0

}//輸出結果

for(

int i = k; i >=0;

--i)

return0;

}

大數除法(1) 高精度除以低精度
#include

#include

#include

#include

using

namespace std;

intmain()

int lena =0;

//去除前導0

while

(sum[lena]==0

&& lena < a.

size()

-1)//輸出商 與 餘數

cout <<

"商:"

;for

(int i = lena; i < a.

size()

;++i)

cout <<

" 餘:"

;printf

("%d"

, x)

;return0;

}

大數除法 高精度除以高精度

高精除以低精度是對被除數的每一位(這裡

的「一位」包含前面的餘數,以下都是如此)

都除以除數,而高精除以高精則是用減法模擬

除法,對被除數的每一位都減去除數,一直減到當前位置的數字(包含前面的餘數)

小於除數(由於每一位的數字小於10,所以

對於每一位最多進行10次計算)具體實現程式如下:

#include

#include

using

namespace std;

int a[

101]

, b[

101]

, c[

101]

, d, i;

//輸入大數

void

instring

(int a)

}void

print

(int a)

//資料列印

//位數w為0 則輸出0

for(

int i = a[0]

; i >

0; i--

) cout << a[i]

;//不為0 則慢慢輸出資料

cout << endl;

return;}

intcompare

(int a,

int b)

//比較兩個數

return0;

}void

numpcpy

(int p,

int q,

int det)

//複製p陣列到q陣列從det開始的地方

//改變陣列的位數

q[0]= p[0]

+ det -1;

}void

jian

(int a,

int b)

//表明a是減完了

if(flag ==1)

//a比b大 可以進行減法

a[i]

-= b[i];}

while

(a[0

]>

0&& a[a[0]

]==0) a[0]

--;//修正a的位數 如果他的最高項是0的}}

void

chugao

(int a,

int b,

int c)

}while

(c[0

]>

0&& c[c[0]

]==0)c[0]

--;//刪除前導的0

return;}

intmain()

大數乘法和大數除法模板

找個時間整理一下 下次留著用,主要是大數乘法和大數除法的 坑了爹乙個下午,很多的細節都疏忽了。反轉字串函式,方便索引各位數 void reverse char c for while c 處理進製,直到進製為0 while for 將兩個乘數和乘積都改為大端法 reverse dest revers...

大數加法 減法 乘法 除法

大數加法 實現 include include typedef char str 1000 void printnum int sum int len 輸出 void add str a int len a str b int len b 計算a b 只能 while len a 1 if c 0 ...

大數運算,佇列實現大數 加法 乘法 除法 模除

以下 可進行大數加法 減法 乘法 除法 餘除,和比較大小的計算 佇列實現 包括負數 include include include include include includeusing namespace std const int mod 1e9 typedef long long ll co...