$int = 100;// $int 要计算的数字$n = 3; //$n 是归属的最大值/* 下面的代码生成归属描述数组 */$array = array();for ($i = 0; $i $array[$i+1] = pow(3, $i);}//现在$array为array(1 => 1, 2 => 3, 3 => 9)$limit = 0; //当前范围$is = 0; //归属foreach ($array as $key => $value) { $limit += $value; if ($limit>= $int) { break; }}echo $is;//这个就是结果了。
<?php$i = 1;for ($i50=0; $i50 <= 100/50; $i50++) { for ($i20=0; $i20 <= 100/20; $i20++) { for ($i10=0; $i10 <= 100/10; $i10++) { for ($i5=0; $i5 <= 100/5 ; $i5++) { for ($i1=0; $i1 <= 100/1; $i1++) { if (($i50*50 + $i20*20 + $i10*10 + $i5*5 + $i1*1) == 100) { echo "方法".$i.": 50元有".$i50."张,20元有".$i20."张,10元有".$i10."张,5元有".$i5."张,1元有".$i1."张"; $i++; } } } } }}?>有343种组合。
$sss = array("a","b","c","d");$sLeng = count($sss);$nBit = 1<<$sLeng;for ($i = 1; $i <= $nBit; $i++) { $x = 0; $s = ""; for ($j = 0; $j < $sLeng; $j++) { if (($i>> $j & 1) == 1) { $x ++; $s .= $sss[$j]; if($x != 1){ echo $s; echo ""; } } }}PHP我不是很懂,不过刚好之前java用到过,翻译成PHP应该是这样。
本人表示楼主被一楼忽悠了!
算法对于一个程序员来说是很重要的,第一通过算法可以提高你的编程水平,试想现在,一个算法可以难倒百分之八十的PHPER,这就是为什么有的程序员做了好几年,水平依旧是个菜鸟的原因!有的还天天抱怨不公平!不要以为算法无足轻重,再想一下,100以内和100亿以内的数组排序一样嘛?100以内的素数和100亿以内的素数一样嘛?不要说你用不到(你网站规模一大,必须考虑这个东西。底层操作无非就是数字运算),也不要说一个SORT解决了!
你说算法和WEB无关,
那你是不是认为斐波那契数列就仅仅是玩游戏的,求老兔子生小兔子的?
你是否知道余弦定理在搜索中的应用很广,而不是高中生拿来算算三角形夹角那样的简单?
程序员要做 programmer而不是coder
<?php$start = '2017-2-5';$end = '2018-3-6';function calDate($start,$end){ $start_time = strtotime($start); // 获得$start 的秒时间戳 $end_time = strtotime($end); // 获得$end 的秒时间戳 return ($end_time - $start_time)/60/60/24; // 秒时间戳相减得到两个日期相差的秒数,通过秒数计算天数}echo calDate($start,$end);?>。
<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = intval(($low+$high)/2 ); if ($array[$mid] == $k){ return $mid; }elseif ( $k < $array[$mid]){ return bin_sch($array, $low, $mid-1, $k); }else{ return bin_sch($array, $mid+ 1, $high, $k); } } return -1; } //顺序查找(数组里查找某个元素) function seq_sch($array, $n, $k){ $array[$n] = $k; for($i=0; $i<$n; $i++){ if( $array[$i]==$k){ break; } } if ($i<$n){ return $i; }else{ return -1; } } //线性表的删除(数组中实现) function delete_array_element($array , $i) { $len = count($array); for ($j= $i; $j<$len; $j ++){ $array[$j] = $array [$j+1]; } array_pop ($array); return $array ; } //冒泡排序(数组排序) function bubble_sort( $array) { $count = count( $array); if ($count <= 0 ) return false; for($i=0 ; $i<$count; $i ++){ for($j=$count-1 ; $j>$i; $j--){ if ($array[$j] < $array [$j-1]){ $tmp = $array[$j]; $array[$j] = $array[ $j-1]; $array [$j-1] = $tmp; } } } return $array; } //快速排序(数组排序) function quick_sort($array ) { if (count($array) <= 1) return $array; $key = $array [0]; $left_arr = array(); $right_arr = array(); for ($i= 1; $i