49 搜狗面試題 大數相乘演算法

2021-09-07 11:58:20 字數 810 閱讀 9093

分析:

大數能大到整形型別儲存不了。須要借助於其它的演算法,來完畢乘法運算。

能夠使用口算乘法的步驟來模擬乘法操作。例如以下:

123*   122

=3 4 6

+                   3 4 6

+                1 2 3

=                  1 5 0 0 6

實現例如以下:

#include#includeusing namespace std;

char* mutibigernum(char* a, char* b)

res[i+j+1] = temp%10 + '0';

} res[i] = carry + '0';

} return res;

}int main(int argn, char** ar**)

char* resnum = mutibigernum(a, b);

if(strlen(resnum) > 0 && resnum[0] == '0')

cout << a << "*" << b << "=" << resnum + 1 << endl;

else

cout << a << "*" << b << "=" << resnum << endl;

return 0;

}

執行結果例如以下:

./test

122*123=15006

./test 999 888

999*888=887112

大資料演算法面試題

本文參考並對部分內容進行了整理 1 給定 a b 兩個檔案,各存放 50 億個 url,每個 url 各佔 64 位元組,記憶體限制是 4g,讓你找出 a b 檔案共同的 url?1 可以估計每個檔案安的大小為 50g 64 320g,遠遠大於記憶體限制的 4g。所以不可能將其完全載入到記憶體中處理...

面試題49 醜數

題意 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。思路 暴力每個數,判斷是不是醜數,直到找到第n個醜數。這個有點慢,不考慮 不能暴力所有數,我們考慮暴力醜數。假設陣列...

面試題49 醜數

一 暴力法 從1開始對每乙個數進行判斷,是否可以連除2,3,5得到1,效率比較低 class solution return number bool isugly int n 二 以空間換取時間的做法 思路 把每乙個醜數都列出來。醜數肯定是2,3,5的倍數,所以每乙個位置都可以乘2,3,5,找到比目...