作者fanntone (我是胖子)
看板Soft_Job
標題Re: [請益] MTK 面試測驗請教
時間Wed Nov 18 03:49:22 2015
※ 引述《hanck ( )》之銘言:
: 今兒個去MTK面試寫考卷看到兩題題目想跟大家請教一下
: 1.
: extern void func1(void);
: extern void func2(void);
: extern void func3(void);
: extern void func4(void);
: extern void func5(void);
: void main(int n)
: {
: if n==1 execute func1;
: if n==2 execute func2;
: if n==3 execute func3;
: if n==4 execute func4;
: if n==5 execute func5;
: }
: 保證 n 一定是上面五個數字之一
: 不能用if 和 switch case , 請用你認為最快的方法實作main
: 2.
: extern void func1(void);
: extern void func2(void);
: extern void func3(void);
: extern void func4(void);
: extern void func5(void);
: void main(int n)
: {
: if n==33 execute func1;
: if n==67 execute func2;
: if n==324 execute func3;
: if n==231 execute func4;
: if n==687 execute func5;
: }
: 保證 n 一定是上面五個數字之一
: 使用if, 請用你認為最快的方法實作main
: 這兩題難度都是標記困難,所以我想第二題應該不會只是單純用if else
: 而第一題無法下手......不知道有沒有高手指導一下
小弟才疏學淺
#include "stdafx.h"
#include <stdio.h>
#include <vector>
#include <string>
using namespace std;
void fun1() {
printf("1");
}
void fun2() {
printf("2");
}
void fun3() {
printf("3");
}
void fun4() {
printf("4");
}
void fun5() {
printf("5");
}
// ch2
//if n == 33 execute func1;
//if n == 67 execute func2;
//if n == 324 execute func3;
//if n == 231 execute func4;
//if n == 687 execute func5;
typedef void (*myCall)(void);
int _tmain(int argc, char* argv[])
{
auto p = atoi(argv[1])%7;
std::vector<myCall> fann;
fann.clear();
fann.resize(6);
fann[5] = fun1;
fann[4] = fun2;
fann[2] = fun3;
fann[0] = fun4;
fann[1] = fun5;
fann[p]();
return 0;
}
--
錢是汗水的報償 智慧的結晶 能力的證明
它更是一種尊嚴 更是一種肯定
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.14.23.110
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1447789766.A.584.html
1F:→ fanntone: 記得visual studio要設成 Use Multi-Byte Character Set 11/18 03:51
2F:→ testPtt: 用map阿 11/18 08:29
3F:→ Obama19: 用stl只會更慢 11/18 08:50
4F:推 maypcc: 第一題分析1~5的binary format用&binary operation 11/18 08:54
5F:→ maypcc: 第二題,應該差不多只要偵測高位元,再加個Shift就ok 11/18 08:55
6F:→ jenny2921: 為什麼原文不見了? 12/03 00:44