PHP經典趣味演算法

2021-10-08 22:47:13 字數 2373 閱讀 4895

// 1、一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最後只剩下乙隻猴子為止,那只猴子就叫做大王。要求程式設計模擬此過程,輸入m、n, 輸出最後那個大王的編號。

function king($n, $m) else

$i++;//$i 迴圈+1,不斷把猴子刪除,或 push到陣列

}return current($monkeys); //猴子數量等於1時輸出猴子標號,得出猴王

}echo king(6,3);

// 2、有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年後有多少頭牛。

function niu($y)else if($i==20)

} return $num;

}// 3、楊輝三角

/* 預設輸出十行,用t(值)的形式可改變輸出行數 */

class t

public function display()

echo"

"; }

}}$yh=new t('3'); //$yh=new t(數量);

$yh->display();

?>

// 4.氣泡排序

function maopao($arr)}}

return $arr;

}// 5.快速排序

function quicksort($arr)

//選擇第乙個元素作為基準

$base_num = $arr[0];

//遍歷除了標尺外的所有元素,按照大小關係放入兩個陣列內

//初始化兩個陣列

$left_array = array(); //小於基準的

$right_array = array(); //大於基準的

for($i=1; $i<$length; $i++) else

}//再分別對左邊和右邊的陣列進行相同的排序處理方式遞迴呼叫這個函式

$left_array = quicksort($left_array);

$right_array = quicksort($right_array);

//合併

return array_merge($left_array, array($base_num), $right_array);

}// 6.二分查詢演算法(折半查詢演算法)

function binsearch($x,$a) elseif($a[$middle]<$x) else

}return false;

}// 7.php奇異演算法

function test()

test();

php7以下的版本返回的是 6,php7版本返回5 ,還真的算奇異,個人底層演算法差,認為是php7以下版本的bug

// 8.字元集合:輸入乙個字串,求出該字串包含的字元集合,並按順序排序(英文)

function set($str)

// 9.遍歷乙個檔案下的所有檔案和子資料夾下的檔案

function allfile($dir)else}}

}}// 10.從乙個標準的url提取出檔案的副檔名

function getext($url)

function jieti($num)

// 12.請寫一段php**,確保多個程序同時寫入同乙個檔案成功

<?php

$fp = fopen("lock.txt","w+");

if (flock($fp,lock_ex)) else

fclose($fp);

?>

// 13.無限級分類

function tree($arr,$pid=0,$level=0)

}return $list;

}// 14.獲取上個月第一天 和 最後一天

//獲取上個月第一天

date('y-m-01',strtotime('-1 month'));

//獲取上個月最後一天

date('y-m-t',strtotime('-1 month'));

// 15.隨機輸入乙個數字能查詢到對應的資料區間

//把區間換成陣列寫法,用二分法查詢區間

function binsearch($x,$a)elseif($a[$middle]<=$x )

}return '在區間'.$a[$high].'到'.$a[$lower];

}$array = ['1','50','100','150','200','250','300'];

$a = '120';

echo binsearch($a,$array);

php經典演算法

1.冒泡演算法,排序演算法,由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序 array array a,f,c,b,e,h,j,i,g function maopao fun array count count array for i 0 i count i ret...

PHP趣味案例

我們在面試題中可能遇到的一些的有趣的php案例,下面我們對這些案例進行整合 for num 0 num 100 num 能被 3整除的個位數為6的數 for num 0 num 100 num 問題 5個數字一行輸出,而且輸出的是偶數 0 100個數 for i 0,j 1 i 100 i else...

PHP趣味案例

我們在面試題中可能遇到的一些的有趣的php案例,下面我們對這些案例進行整合 for num 0 num 100 num 能被 3整除的個位數為6的數 for num 0 num 100 num 問題 5個數字一行輸出,而且輸出的是偶數 0 100個數 for i 0,j 1 i 100 i else...