作者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/cn.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