笔试真题解析 ALBB-2015 算法工程师实习生机试

本文是针对阿里巴巴2015年算法工程师实习笔试题的解析,涵盖了数学、概率、数据结构、数据库、C++、STL、操作系统等多个领域的知识点,包括阶乘在不同进制下的表示、相遇问题、项目分配方案、SQL查询、STL特性、概率计算、二叉查找树等。通过这些题目,帮助读者理解和掌握相关编程与算法技巧。
摘要由CSDN通过智能技术生成

1.用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0。
【解析】
计算N!下3进制结果末尾有多少个0,其实就是计算3进制中的3被进位多少次,只要将N!因式分解成3^m*other,m就是答案。技巧性的解法就是m=N/3+N/(3^2)+N/(3^3)....+N(3^k) (k<=N/3) —— N=30;N/3+N/9+N/27=14。

2.小赵和小钱二人分别从寝室和图书馆同时出发,相向而行。过了一段时间后二人在中途相遇,小赵继续向图书馆前进,此时:若小钱继续向寝室前进,则当小赵到达图书馆时,小钱离寝室还有600米;若小钱立即折返向图书馆前进,则当小赵到达图书馆,小钱离图书馆还有150米。那么图书馆与寝室间的距离是____。
【解析】

方法一:

设小赵,小钱速度分别位v1,v2,相遇前后时间为t1,t2。则可以得到:
v1( t1+t2 )=s;v2( t1+t2 )= s-600;v1/v2=s /( s-600 )
(v1-v2)( t1+ t2 ) = 600;(v1-v2) t2 = 150;v2 t1 = v1 t2;v1/v2 = 1/3
s/(s-600) = 1/3;s=900。

方法二:


(x+150)/y =(x+150)/x=(600+y)/(x+150)=v1/v2;

x=y=75;s=600+75*2+150=900。


3.某开发团队有6位开发同学,需参加5个项,每位同学需要恰好参加1个项,那么总共有____ 种不同的分配案 
【解析】

六人五个项目,必有一项目两人做C(1/5)*C(2/6),剩下四人座剩下四个项目A(4/4),则N=C(1/5)C(2/6)A(4/4)。


4.如下SQL语句中,____可能返回null值。
(1) select count(*) from t1;
(2) select max(col1) from t1;
(3) select concat('max=',max(col1)) from t1;
【解析】
(1)返回的是表的行数,如果没有记录,应该返回0,不会出现NULL,
(2) 和(3) 正常情况下不会出现NULL,但是如果表里面没有记录,则会出现NULL。


5.略


6.以下关于STL的描述中,____是错的。

STL容器是线程不安全的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值