http://www.iteye.com/topic/769423
创新工场几道笔试题,欢迎大家讨论。
1 基本情况
笔试题量很小,答题时间1个小时。
1道填空题,9道左右选择题,最后一道编程题。
2 几个题目
第一题:
- int f( int x) {
- int c = 0;
- while (x!=0) {
- x = x & (x-1);
- c++;
- }
- return c;
- }
对于int a = 65536 + 1024 + 8 + 1; int b = f(a);执行后b等于多少?
第二题:
5个骰子,六个面分别标有1~6,现在将五个同时随机投掷,五个点数之和为下面哪个点的概率最大?
(A)14 (B)15 (C)17 (D)20
第三题:
- unsigned long c = 0;
- char a = 0x48;
- char b = 0x52;
- c = b<<8 | a;
请问c等于多少?
第四题:编程题
题目大概意思是:A、B两个量杯,容量分别为M升、N升,现在要用A和B给另一个量杯C盛水K升,C量杯足够大。备用水无限。编程输出每一个步骤三个杯子中的水量。比如:输出(0,0,0),(M,0,0)等。
=================
1. 4, 这个程序就是求二进制数中1的个数
2. 组合数学里面的东西,好像叫形式幂级数,
(x^1+x^2+...+x^6)^5 求x^14, 15, 17 20的系数
3. 0x5248, char 应该先变int
4. 最后一题算是比较有意思的一道题目。
以前见过5升 3升 求2升,不过从来没有考虑过广义的解法
刚才算了半个多小时,算是把思路理清楚了。
假设m>n, k随意。求出k=k%n, a=m,n的最大公因子,if k%a!=0 无解
否则,for(i: 1-n) 存在i,m*i%n=k%n
装水的方法就是先将m倒进n,n满倒掉,知道n不满,将n倒进c; 进行i次
将c里面倒n,n满倒掉,知道n不满,将n倒入c
再将n装满k/n次倒入c中即可。