星期六, 十月 21, 2006

baidu笔试题

三、编程题:30分 共1题
注意:要求提供完整代码,如果可以编译运行酌情加分。

1. 求符合指定规则的数。
给定函数d(n) = n + n的各位之和,n为正整数,如 d(78) = 78+7+8=93。 这样这个函数
可以看成一个生成器,如93可以看成由78生成。
定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出
1至10000里的所有符合数A定义的数。
输出:
1
3


四、设计题:35分 共1题
注意:请尽可能详细描述你的数据结构、系统架构、设计思路等。建议多写一些伪代码或
者流程说明。
1. 假设一个mp3搜索引擎收录了2^24首歌曲,并记录了可收听这些歌曲的2^30条URL,
但每首歌的URL不超过2^10个。系统会定期检查这些URL,如果一个URL不可用则不出现在搜
索结果中。现在歌曲名和URL分别通过整型的SONG_ID和URL_ID唯一确定。对该系统有如下
需求:
1) 通过SONG_ID搜索一首歌的URL_ID,给出URL_ID计数和列表
2) 给定一个SONG_ID,为其添加一个新的URL_ID
3) 添加一个新的SONG_ID
4) 给定一个URL_ID,将其置为不可用

限制条件:内存占用不超过1G,单个文件大小不超过2G,一个目录下的文件数不超过128个。

为获得最佳性能,请说明设计的数据结构、搜索算法,以及资源消耗。如果系统数据量扩
大,该如何多机分布处理?

没有评论: