大數相乘 模擬乘法的運算規則

2022-04-06 11:33:03 字數 1399 閱讀 9553

#define _crt_secure_no_warnings#include

#include

intmain()

, num2[255] = ;

int product[255] = , temp[255] = ;//

temp用於存放乘法的中間值。比如計算123*3時,temp依次為369,246,123.

intlength1, length2, length;

inti, j;

gets(str1);

gets(str2);

length1 =strlen(str1);

length2 =strlen(str2);

length = length1 > length2 ?length1 : length2;

//將兩個數存入到num中

for (i = 0; i <= length1 - 1; i++)

for (i = 0; i <= length2 - 1; i++)

for (i = length2 - 1; i >= 0; i--)

}//計算123*3時,temp值369,246,123需要轉換為369,2460,12300之後,再相加。

//i=length2-1時,temp的長度為length1;

//i=length2-2時,temp的長度為需轉為length1+1;

//所以temp的長度為length1 + length2 - i - 1。

add(product, length1 + length2 - i - 2,temp, length1 + length2 - i - 1

); memset(temp,

0, sizeof(int) * 255

); }

for (i=0; i < length1 + length2 - 1; i++)

return0;

}//函式功能:將大數a和大數b相加,結果存放於a中。length1和length2分別為大數a和大數b的長度。

void add(int a, int length1,int b, int

length2)

, num2[255] = ;

intlength;

length = length1>length2 ?length1 : length2;

for (i = length - 1, j = length1 - 1; j >= 0; i--, j--)

for (i = length - 1, j = length2 - 1; j >= 0; i--, j--)

for (i = length-1; i >= 0; i--)

}for (i = 0; i < length; i++)

}

大數相乘 高精度乘法

給定兩個數,相乘如何得到高精度的結果,給定的兩個數,不確定是不是浮點數,即可能乙個數帶多位小數,另乙個帶小數,或者兩個數都帶多位小數,或都不帶小數,針對這些情況,程式應該都要考慮,所謂的高精度其實就是看兩個數的小數字有多少,那麼其結果的小數字數應該為兩數小數字數之和。針對上述描述,其實大部分思路首先...

大數乘法運算

第8章課後第18題要求 程式設計計算並輸出1 40之間所有數的階乘 40的階乘遠遠超過了長整型所能表示的範圍,因此該題目涉及到大整數的儲存和大整數乘法運算問題 也稱作高精度運算 大整數儲存的解決方案就是把大整數儲存到乙個陣列中,每個陣列元素儲存該數的一位 也可以是多位數字 在階乘這個問題中,階乘的值...

HDU 1042 N 大數與小數相乘的乘法模擬

本題大意 給定乙個10000以內的整數n,讓你求出n 並輸出。本題思路 先初始化乙個存放答案的陣列ans,初始ans 0 1,並初始化其剩下的元素為0,接著就從2開始依次與ans陣列內的每乙個數相乘,具體乘法過程見 需要注意的就是求divisor時自身此時的值也是需要加上的,還有就是注意當存在餘數並...