<?php
class algorithm{
/**
* 第20题:
*题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。
*例如输入字符串"345",则输出整数345。
*/
function twenty($string){
$arr = explode("\"", $string);
if(is_numeric($arr[0])){
print_r($arr[0]);
}
}
/**
* 在一個遞增的數組中找到參數的位置(行遞增,列也遞增)
* array[$i][$j]>$array[$i-1][$j] & array[$i][$j]>$array[$i][$j-1]
* 1,2,8,9
* 2,4,9,12
* 4,7,10,13
* 6,8,11,15
*/
function numFind($num){
$arr = array(array(1,2,8,9),array(2,4,9,12),array(4,7,10,13),array(6,8,11,15));
$lieCount = count($arr[0])-1;
$hangCount = count($arr)-1;
$row = 0 ;
while ($lieCount>=0){
if($arr[$row][$lieCount]>$num){ //從數列的右上角數(9)開始,如果查詢的數比右上角的數小,則表明右上角對應的列中不會出現該數
$lieCount--; //去掉該列,即列減一,現在的右上角數是8.
$result='false';
}else{
if($arr[$row][$lieCount] == $num){ //如果找到了該數與右上角相等,返回true.
$result='true';
return $result;
}else{ //數大於右上角數(9).
if($row<=$hangCount){ //$row小於行數
$row++; //增加一行
}else{
$result = 'max-false'; //該數大於數組中所有元素的時候
return $result;
}
}
}
}
//該數小於數組中所有元素的時候
$min = "min-".$result;
return $min;
}
}
$test = new algorithm();
$num = 0.9;
echo $test->numFind($num);
?>
转载于:https://my.oschina.net/resory/blog/103493