問題描述
求兩個不超過 200 位的非負整數的積。
輸入資料
有兩行,每行是乙個不超過 200 位的非負整數,沒有多餘的前導 0。
輸出要求
一行,即相乘後的結果。結果裡不能有多餘的前導 0,即如果結果是 342,那麼就不能
輸出為 0342。
輸入樣例
12345678900
98765432100
輸出樣例
1219326311126352690000
解題思路
乘法規律,乙個數的第i位和另乙個數的第j位相乘,一定會累加到結果的第i+j位,結果的陣列乙個陣列元素存2位數,最後對結果處理進製,最後列印出來
#include
#include
#include
#include
#define max_len 200
int x[max_len + 20], y[max_len + 20], z[max_len * 2 + 20];
char a[max_len + 20], b[max_len + 20];
void char_to_int(const
char s[ ], int x[ ])
}void big_int_mul(const
int x, const
int y, int z)
}for (i = 0; i < max_len * 2; i ++)
}}void big_int_print(const
int z)
}if (!flag)
printf("0");
printf("\n");
}int main( )
高精度正整數乘法問題
給定任意兩個高精度正整數a b,計算a與b的乘積。輸入檔案中有若干行,每一行上有兩個用字串表示的正整數a,b。輸入直到檔案結束。對每個輸入行上的兩個正整數a,b,在一行上先輸出形式a b 接著輸出a與b的積。12345 6788466 345 66 12345 6788466 83803612770...
高精度乘法(僅整數字)
all in code.實現任意位的大整數相乘,修改n和m即可 include includeconst int n 10010 const int m 2 10010 char sn1 n sn2 n int n1 n n2 n res n void big mul int len1,int le...
高精度 大整數減法
求兩個大的正整數相減的差。共2行,第1行是被減數a,第2行是減數b a b 每個大整數不超過200位,不會有多餘的前導零。一行,即所求的差。本題考察的是高精度減法。我們可以模擬減法的豎式計算過程從而實現高精度的計算。和高精度加法一樣,也是使用字串來進行輸入 儲存。豎式計算時,也是低位對齊,從低位向高...