1. 1024!末尾有多少个0?
2. 编程实现两个正整数的除法(不能用除法操作符)。
3. 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句。
4. 两个数相乘,小数点后位数没有限制,请写一个高精度算法。
5. 编程实现把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列。
6. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。
7. 用1, 2, 2, 3, 4, 5这六个数字,写一个main函数,打印出所有不同的排列。
如:512234, 412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
8. 求两个或N个数的最大公约数和最小公倍数。
9. 如果一个整数能够表示成两个或多个素数之和,则得到一个素数和分解式。
对于一个给定的整数,输出所有这种素数和分解式。
注意,对于同构的分解只输出一次(比如5只有一个分解2 + 3,而3 + 2是2 + 3的同构分解式)。
例如,对于整数8,可以作为如下三种分解:
(1) 8 = 2 + 2 + 2 + 2
(2) 8 = 2 + 3 + 3
(3) 8 = 3 + 5
10. 输入n个整数,输出其中最小的k个。
例如,输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。
11. 求1 + 2 + … + n
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A ? B : C)。
12. 定义Fibonacci数列如下:
0 if n = 0
f(n)= 1 if n = 1
f(n-1)+f(n-2) if n >= 2
输入n,用最快的方法求该数列的第n项。
13. 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于m。
要求将其中所有的可能组合列出来。
14. 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。
15. 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一。
现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。
16. 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
17. 我们把只包含因子2, 3和5的数称作丑数(Ugly Number)。
例如:6, 8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。
求按从小到大的顺序的第1500个丑数。
18. 输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1, 2, 3一直到最大的3位数即999。
19. 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。
20. 一串首尾相连的珠子(m个),有N种颜色(N<=10)。
设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
21. 设计一个系统处理词语搭配问题,比如说中国和人民可以搭配,则中国人民,人民中国都有效。
要求: *系统每秒的查询数量可能上千次; *词语的数量级为10W; *每个词至多可以与1W个词搭配。
当用户输入中国人民的时候,要求返回与这个搭配词组相关的信息。
22. 有一千万条短信,以文本文件的形式保存,一行一条,有重复。
请用5分钟时间,找出重复出现最多的前10条。
23. 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。
2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。
24. 实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。
25. 给出一个文件,里面包含两个字段{url、size},即url为网址,size为对应网址访问的次数。
问题1、利用Linux Shell命令或自己设计算法,查询出url字符串中包含“baidu”子字符串对应的size字段值;
问题2、根据问题1的查询结果,对其按照size由大到小的排列。
(说明:url数据量很大,100亿级以上)
26. a~z包括大小写与0~9组成的N个数。用最快的方式把其中重复的元素挑出来。
27. 已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器,使得它构造0和1的概率均为1/2;构造一个发生器,使得它构造1、2、3的概率均为1/3;...,构造一个发生器,使得它构造1、2、3、...n的概率均为1/n。要求复杂度最低。
28. 有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。要求按照query的频度排序。
29. 在8x8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
30. 某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。
31. 写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。