有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。
輸入描述:
空格分隔的兩個字串,代表輸入的兩個大整數輸出描述:
輸入的乘積,用字串表示輸入例子1:
72106547548473106236 982161082972751393輸出例子1:
70820244829634538040848656466105986748這道題看完就去上課了,在課上想的時候也沒什麼好的思路,然後就看了一下其他大佬的做法,發現有一種還是挺聰明的。
我之前的想法是先將字元轉化為數字,然後模擬豎式乘法的方法按位計算,但是發現這樣比較麻煩,其實可以先把每位的計算的結果先不考慮進製儲存起來,然後再從邏輯上運算的最低位依次把進製求出來加到高一位的數字上,最後再轉換為字元並顯示出來
#include #include #include using namespace std;
int main()
for (int i = n2 - 1; i >= 0; --i)
vectorv(n1 + n2, 0);
for (int i = 0; i < n1; ++i)
}for (int i = 0; i < n1 + n2-1; ++i)
string res;
int m = n1 + n2 - 1;
if (v[n1 + n2 - 1] == 0)
m = n1 + n2 - 2;
for (int i = m; i >= 0; --i)
cout << res << endl;
}return 0;
}
題目類 拼多多2018校招內推程式設計題
有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。輸入描述 空格分隔的兩個字串,代表輸入的兩個大整數 輸出描述 輸入的乘積,用字串表示 示例1 輸入 72106547548473106236 982161082972751393 輸出 7082024482...
2018校招真題 拼多多2 大整數相乘
題目描述 有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。輸入描述 空格分隔的兩個字串,代表輸入的兩個大整數輸出描述 輸入的乘積,用字串表示示例1 輸入 72106547548473106236 982161082972751393輸出 70820244...
2018拼多多校招 大整數相乘 Python解法
思路 大整數相乘,其實完全套用了列豎式計算乘法的思路,重點就是講豎式計算這一過程用 表示。豎式計算中,乙個乘數會和另乙個乘數逐位相乘,從個位到最高位,相乘的結果依次左移一位,最後將多個計算結果相加即可,而左移一位其實就是 10 times 10 10 期間同時考慮進製加至前一位,這樣整個思路就很清晰...