開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
由於剛退伍,腦袋已經轉不過來,題目一共有六題,
解完四題後,已經越來越滿身冷汗....
之前實習的考試能寫四題我已經很開心了,
但是這次面試考官給了點時間,所以想把他寫得完整一點...
請教版上各位前輩給予指教,
小弟萬分感謝!!!
1.
下面程式是想做甚麼判定?
bool test(int X)
{
return (!(X&(X-1)))
}
2. 優化下段程式,並解釋理由:
// Optimze the following code in ANY directions.
// HINT: try more directions.
// Such as code generality to different compilers, memory access overhead,
// memory use, calculating overhead, code efficiency...etc.
#define WHITE 255
#deifne BLACK 0
#deinfe THRESHOLD 20
#define WINDOW_HEIGHT 5
#define BOOL int
#define TRUE 1
#define FALSE 0
BOOL funtionFromRight(int score, int width, byte * * image, int xi, int yi)
{
BOOL b;
int leftBound = 2;
for(b=xi-1; b > leftBound && b < width-2 ; b=b-1)
{
if(image[yi][b] == WHITE && image[yi][b+1] == BLACK)
{
int isVertical=0;
for(int c = WINDOW_HEIGHT*(-1); c <= WINDOW_HEIGHT ; c++)
{
isVertical+=image[yi+c][b_next];
isVertical+=image[yi+c][b];
}
if(isVertical <= THRESHOLD && score > 200)
return TRUE;
}
if(image[yi] [b] == BLACK)
break;
}
return FALSE;
}
BOOL funtionFromLeft(int score, int width, byte * * image, int xi, int yi)
{
BOOL b;
int leftBound = 2;
for(b=xi+1; b > leftBound && b < width-2 ; b=b+1)
{
if(image[yi][b] == WHITE && image[yi][b+1] == BLACK)
{
int isVertical=0;
for(int c = WINDOW_HEIGHT*(-1); c <= WINDOW_HEIGHT ; c++)
{
isVertical+=image[yi+c][b_next];
isVertical+=image[yi+c][b];
}
if(isVertical <= THRESHOLD && score > 200)
return TRUE;
}
if(image[yi][b] == BLACK)
break;
}
return FALSE;
}
小弟知道這樣是不勞而獲,但是請給年輕人一個機會吧<(_ _)>
當了一年的笨蛋,回過頭來真的很多都忘光了....
前天收到考題,我已經在電腦前面坐了17個小時了....(包含廁所)
埋在裡面這麼久,明天就要交卷了...
所以在這邊拜託各位前輩了.....
小弟願奉上雞排1份、COCO珍奶1杯或肯德基、麥當勞套餐一份作為答謝。