**如下:
#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...