三道数学题,分别用了分治法,二分查找法和不标准的二分查找法。
第一题巧妙地运用了n除二的最终形态使n小于零的公式:half*half/x变成了1*1/x,最终把原有的四种情况,降到了三种情况,非常有技巧的一道题。
第二题,一道开平方的数学题竟然用到了二分查找法,足可见数学在计算机领域里的强大地位。
第三题,涉及到位运算和二进制的题,一般都会难道我,这次更不例外,好不容易看懂了,简单说下要点:从高位往低位遍历被除数,每一次遍历到的数字如果大于除数,结果加一,下一次循环结果乘二,哦,还有,遍历到的数字需要减去除数,为的是不把高位运算过的值带到低位。
最后提一下,int类型在这类题中可能需要转换为long类型,防止位数超出正负取反。
第四题比较有难度,解决的算法也相当经典,值得一看。
第五题,是cc150最后一章的第一题,很经典,从本质上讲述了电脑是如何运行加法的,值得一看。