网易游戏2011招聘笔试题
2014-09-25 00:36
316 查看
1、对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少?
0x0005f123/0x2000=0x2f.....0x1123。页号就是0x2f(47), 偏移是0x1123。(都是从0开始,注意0x2f表示前面有47页,那么基于0的下标,当前页应该是47页(上一页是46)。注意这里的地址已经是基于0,所以余数不需要再减1.
2、如果X大于0并小于65536,用移位法计算X乘以255的值为?
X*255=X*(256-1)=(X<<8)-X 这里的括号不能少,因为移位运算符的优先级较低。
3. extern “C”
在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,应该如何解决这种情况呢?
答案与分析:
C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。
4、输入格式:第一行输入N(N<=100)表示流通的纸币面额数量;第二行N个纸币的具体表示的面额,从小到大排列,取值【1,10^6】。
输出格式:输出一个整数,表示应该发行的纸币面额,这个整数是已经发行的所有纸币面额都无法表示的最小整数。(已经发行的每个纸币面额最多只能使用一次)
母函数问题.今天看了一天。也是有模板的。
生成函数是$g(x) = (1 + x^{arr[0]})*(1+x^{arr[1]})*\ldots*(1+x^{arr[n-1]})$.
Line 31-32,因为每个面值的纸币只有两种情况,取或者不取,所以这里不需要循环判断了。
另外关于target的取值。假设所有面纸都用一次的值为$sum = \sum_{0}^{n-1}arr[i]$. 也就是说,sum是能够表示的最大的数,对于大于sum的值,必须要用到至少两张同样的纸币,这与题设相背。所以如果[1,sum]都能覆盖到的话,第一个没覆盖到的数就是sum + 1。 target也可以直接取为sum。
0x0005f123/0x2000=0x2f.....0x1123。页号就是0x2f(47), 偏移是0x1123。(都是从0开始,注意0x2f表示前面有47页,那么基于0的下标,当前页应该是47页(上一页是46)。注意这里的地址已经是基于0,所以余数不需要再减1.
2、如果X大于0并小于65536,用移位法计算X乘以255的值为?
X*255=X*(256-1)=(X<<8)-X 这里的括号不能少,因为移位运算符的优先级较低。
3. extern “C”
在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,应该如何解决这种情况呢?
答案与分析:
C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。
4、输入格式:第一行输入N(N<=100)表示流通的纸币面额数量;第二行N个纸币的具体表示的面额,从小到大排列,取值【1,10^6】。
输出格式:输出一个整数,表示应该发行的纸币面额,这个整数是已经发行的所有纸币面额都无法表示的最小整数。(已经发行的每个纸币面额最多只能使用一次)
输入 | 输出 |
5 1 2 3 9 100 | 7 |
5 1 2 4 9 100 | 8 |
5 1 2 4 7 100 | 15 |
生成函数是$g(x) = (1 + x^{arr[0]})*(1+x^{arr[1]})*\ldots*(1+x^{arr[n-1]})$.
Line 31-32,因为每个面值的纸币只有两种情况,取或者不取,所以这里不需要循环判断了。
另外关于target的取值。假设所有面纸都用一次的值为$sum = \sum_{0}^{n-1}arr[i]$. 也就是说,sum是能够表示的最大的数,对于大于sum的值,必须要用到至少两张同样的纸币,这与题设相背。所以如果[1,sum]都能覆盖到的话,第一个没覆盖到的数就是sum + 1。 target也可以直接取为sum。
#include <iostream> #include <vector> #include <stdio.h> using namespace std; int main() { freopen("input.txt", "r", stdin); int n; scanf("%d", &n); if (n <= 0) { cout << "first not cover: 1" << endl; return 0; } int* arr = new int ; int target = 0; for (int i = 0; i < n; ++i) { scanf("%d", &arr[i]); target += arr[i]; } vector<vector<int> > params(2, vector<int>(target + 1, 0)); params[0][0] = 1; int cur = 0, next = 1; for (int i = 0; i < n; ++i) { params[next].assign(target + 1, 0); for (int j = 0; j <= target; ++j) { if (params[cur][j] == 0) continue; params[next][j] += params[cur][j]; if (j + arr[i] <= target) params[next][j + arr[i]] += params[cur][j]; } cur = !cur; next = !next; } bool cover = true; for (int i = 0; i <= target; ++i) { if (params[cur][i] == 0) { cout << "first not cover: " << i << endl; cover = false; break; } } if (cover) cout << "first not cover: " << target + 1 << endl; delete[] arr; return 0; }
相关文章推荐
- 网易游戏2011招聘笔试题+答案解析
- 网易游戏2011招聘笔试题+答案解析
- 网易游戏2011招聘笔试题+答案解析
- 网易游戏2011.10.15校园招聘笔试题
- 2017网易游戏雷火盘古实习生招聘笔试:最大和
- 十月下旬腾讯,网易游戏,百度迅雷校园招聘笔试题集锦(第271-330题)
- 网易游戏2016实习生招聘在线笔试:A 推箱子
- 剑指XX游戏读后感(2):网易2011笔试题详解/sizeof和strlen/交换双向链表节/dll和lib和exe/8叉树减色/11盆花组合/宠物技能遗传/看virtual继承代码写输出
- 2012九月十月腾讯,网易游戏,百度最新校园招聘笔试题
- 网易游戏2011.10.15校园招聘会笔试题
- 十月下旬腾讯,网易游戏,百度迅雷校园招聘笔试题集锦(第271-330题)
- 网易2011校园招聘笔试题-IP地址提取并统计次数
- 剑指XX游戏(三) - 网易2013校园招聘笔试题详解
- 2015网易游戏校园招聘笔试题 游戏插件研发岗
- 网易游戏2011.10.15校园招聘会笔试题
- 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场(神奇的数)
- 网易游戏2011校园招聘
- 剑指XX游戏(三) - 网易2013校园招聘笔试题详解
- 2015网易游戏校园招聘笔试题 研发岗
- 网易游戏2011.10.15校园招聘会笔试题