
面试题目
Captain_MXD
这个作者很懒,什么都没留下…
展开
-
两个数实现交换
只用两个数实现交换程序: int a,b; (1) a=a^b; (2) b=a^b;(3) a=a^b;这样就实现了两个数的交换:关于 ^ 相同为0 ,不同为1 异或运算满足交换律(1) 中 a和b的二进制位相同的就变成0,不同的就变为1;(2) 中 a^b 就相当于 开始的 a^b^b原创 2016-03-16 11:46:01 · 828 阅读 · 0 评论 -
比较两个数的大小
写一个比较函数比较哪个大:void wholarge(int a,int b){ int c=a-b; if((unsigned)c>>(sizeof(int)*8-1)==0) (1) { cout }else { cout }}(1) : 先把a b 两个数的差进行强原创 2016-03-16 21:54:00 · 1246 阅读 · 0 评论 -
N的阶乘后有多少0
阶乘中的0的个数和因数中有多少个因子5相等。Z = N/5 + N /(5*5) + N/(5*5*5).....直到N/(5的K次方)等于0 int zeroCount(int n) { int count=0; while(n) { count+=n/5; n/5;原创 2016-04-06 19:57:12 · 455 阅读 · 0 评论 -
面试题
1.什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 2.char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p转载 2016-09-04 16:49:42 · 864 阅读 · 0 评论 -
排序的最好和最坏的时间复杂度问题
排序时间复杂度问题面试时被问到冒泡排序,选择排序和快速排序的时间复杂度问题,由于自己基础不扎实,当场懵逼,这件事一直让我反思了好几天。可能你会正确地写出这几种排序,可能你会背过别人给你说的时间复杂度。我也是这样。先说冒泡排序:冒泡排序不管序列是怎样,都是要比较n(n-1)/2 次的,O(N2),而对于交换次数来说,如果是数组是有序的则,只不需要交换。如果数组是逆序的则需要交换n原创 2016-12-17 16:16:59 · 21476 阅读 · 3 评论