大數的乘法

2021-07-10 18:40:17 字數 908 閱讀 4762

**如下:

#include 

#include

#define n 1000

void getdigits(int *a,char *num)

}void multiply(int *a, int *b, int *c)

}int main()

; //操作第乙個數字的陣列

int b[n] = ; //操作第二個數字的陣列

int res[n*2] = ; //存放結果的陣列

scanf("%s",&num1);

scanf("%s",&num2);

getdigits(a,num1);//將字串轉化為數字存在整型陣列中

getdigits(b,num2);

multiply(a,b,res);//運算後將結果存於res中

int j = 2*n - 1;

while (res[j] == 0) j--;

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

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

printf("\n");

return

0;}

程式中最核心的地方就是multiply()函式中模擬乘法運算的地方,比如,12345*12345,a中的5與12345逐位相乘,結果放在陣列c中0~4號位置,而當a中的4與b中的12345逐位相乘時,不是單純的將結果放在陣列c中的1~5號位置,而是將結果與累加到上次的結果上。如下圖所示:

當然,此方法有所欠缺,只能處理無符號的大數,完善後的**會陸續上傳!

大數的乘法

用串的形式表示大數的乘法。即求類似 23234845847839461464158174814792 6457847285617487843234535 要求結果返回乙個串。思路 對於大整數的乘法,我們可以利用分治法將其兩個字串從中間截斷,將兩字串的後半部分,進行相乘,記得進製。對於前半部分相乘,前...

大數加法,大數乘法

include include include typedef struct node pnode 函式宣告 int multiply char strmultipliera,char strmultiplierb,char strrst pnode initlist char strmultipl...

大數問題 大數加法 與 大數乘法 最簡單大數乘法

大數加法很簡單,大叔乘法只是以大數加法為基礎的,光從難度來說,兩者差不多。先舉乙個簡單的例子 所以乘法就是每一位個位數相乘再乘以多少次方就可以了,這個多少次就是兩者的陣列位置的索引相加。看看關鍵 for int i 0 i alen i else result plus result,c heigh...