#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時自身此時的值也是需要加上的,還有就是注意當存在餘數並...