编程之美
havedream_one
这个作者很懒,什么都没留下…
展开
-
最大公约数求解
《编程之美》第一种方法(辗转相除法)利用的原理:gcd(x,y)=gcd(y,x%y) //x>y,若x程序:int gcd(int x,int y){//传入的参数要满足x>yreturn (!y)?x:gcd(y.x%y);}缺点:在大整数时,取模运算会很昂贵第二种方法(姑且成辗转相减法)利用的原理:gcd(x,y)=gcd(x-y,y)如果一个数能够同转载 2014-12-11 10:45:28 · 2318 阅读 · 0 评论 -
将无限循环小数转换成分数形式
节选自《编程之美》设一个循环小说X=0.a1a2a3...an(b1b2...bm),括号中的是循环节,例0.333(333)将X分成两部分,X=(a1a2..an+0.(b1b2..bm))/10n设Y=0.(b1b2...bm)则有Y=(b1b2...bm+0.(b1b2...bm))*10m那么就有Y=b1b2...bm/(10m-1)综上可知X=(a1a2...转载 2014-12-11 09:05:35 · 5826 阅读 · 0 评论 -
中国象棋将帅问题
来源:编程之美-微软技术面试心得在中国象棋中,将帅只能在两个九宫格里,且将帅不能见面,即不能同时出现在一列里,问题:请输出将帅所有可能的位置,只能用一个字节实现分析:这个问题的难点在于变量只能使用一个字节,很显然,大致的解法就是两个for循环,然后判断将帅是否在同一列,不在则输出。设:A=‘将’,B=‘帅’,九宫格用1,2,3,……,9来表示。解法一:A或B可能转载 2014-11-27 08:48:15 · 1179 阅读 · 0 评论 -
编程之美--求数组中子数组之和的最大值
《编程之美--微软技术面试心得》思路:方法一:最直接的方法,遍历所有的子数组,比较其和O(N2)方法2:分治算法O(N*logN)方法3:动态规划方法O(n)原创 2014-12-23 11:04:50 · 2427 阅读 · 0 评论