
面试&笔试
喜羊羊与灰太狼
谦虚是必须的品格
展开
-
从海量数据中找出中位数
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。关于中位数:数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与...2010-04-03 14:58:26 · 441 阅读 · 0 评论 -
54张扑克牌,两人轮流拿牌问题
54张扑克牌,两人轮流拿牌,每人每次只能拿1---4张,谁拿到最后一张谁输,先拿牌的人要怎样做才能确保获胜?要保证每轮拿牌总数在自己控制之内,所以每轮拿5张牌,对方拿N张,则自己拿5-N张,十轮可以拿50张牌,所以问题相当于,一共54-50=4张牌,自己先拿,要给对方省一张牌,所以第一次自己拿3张,以后每次都拿5-N张,其中N为对方拿牌数,1 ...原创 2011-03-11 15:10:17 · 11877 阅读 · 0 评论 -
1000个苹果分10个箱装
1000个苹果放入10个箱子。客户如果要获得1~1000个苹果中的任意个数,都可以整箱搬,而不用拆开箱子。问是否有这样的装箱方法?二进制数组合: 1 10 1001000可以表示任何0X01~0XFF之间的数字,所以按照这样的思想, 1 10 100 1000 10000 1...原创 2011-03-11 15:22:16 · 4029 阅读 · 0 评论 -
四个人分52张扑克牌,同时拿到红桃A和黑桃A的概率?
4 个人分牌,54 张扑克牌,除去两张大小王剩下 52 张扑克牌。问红桃 A 和黑桃 A 同时被一个人拿到的概率是多少?将牌无序分成四堆,每堆13张,组合数是C(52, 13) * C(39, 1) * C(26, 13) * C(13, 13),将红桃A和黑桃A看做一张牌,然后进行分牌,四人中任何一个人都可能拿到,这样的分牌的组合数是C(4, 1)*C(50, 11)*C(39, 13)*C(2...原创 2011-03-11 15:49:30 · 2411 阅读 · 0 评论 -
完成函数int print_all(int k),返回小于该参数K的所有整数。要求整个程序不能用if、if-else、for、while、do-while、?:...
既然不让用循环,那么初步考虑使用递归来实现循环。既然不让用条件,那么初步考虑用逻辑表达式的不完全执行来实现条件终止。试以C语言为例,代码如下:#include <stdio.h>int print_all(int k){ printf("%d\n",k-1); //输出k-1的值 return (k-1==0||print_all(k-1));...原创 2011-03-13 16:54:28 · 179 阅读 · 0 评论