算法整理
qq827887
程序痞子,代码洁癖,服务器资源吝啬者
展开
-
换汽水
汽水促销,2 空瓶可以换 1 瓶汽水喝。 买了2000瓶汽水,一共能喝多少瓶? 公式 : N+(N-1)/(K-1) N:汽水数 K:几个空瓶换一瓶汽水 <?php function DBLD($n,$k) { return floor($n + ($n-1) / ($k-1)); } echo DBLD(2000,3); ?>原创 2014-03-16 22:43:14 · 680 阅读 · 0 评论 -
求1+2+...+n
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。 function GetNSum($n) { $i=1; ($n>1) && ($i=GetNSum($n-1)+$n); return $i; }原创 2014-03-03 19:36:27 · 734 阅读 · 0 评论 -
最大堆
int * heap(int *a, int size){ int i; //size--; for (i = size; i > 0; i--) { int *parent = a + (i / 2); int *child = a + i; if (i != size && *child *parent) { swap(child, parent); } }}原创 2016-04-21 20:55:03 · 279 阅读 · 0 评论 -
二分查找法与拉格朗日差集
int * find2(int *a, int left, int right, int findnum) { while (left <= right) { //拉格朗日差集 center = left + (right - left) * 1.0 *(findnum - *(a + left)) / (*(a + right) - *(a + l原创 2016-04-21 21:26:56 · 318 阅读 · 0 评论 -
约瑟夫环,PHP模拟环形链解决方法!
题 : 一群猴子排成一圈.按1,2,...,n依次排号.然后从第一只开始数,数到第m只,把它踢出圈,从它后面再开始数.再数到第m只,把它踢出去..如此不停的进行下去.直到最后只剩下一只猴子为止,那只猴子就叫大王. 要求编程模拟此过程,输入m,n. 输出最后那个大王的编号. /* * @param $n 总数 * @param $m 当报数到 m 时,m出列 * @return原创 2014-01-28 21:05:22 · 821 阅读 · 0 评论