最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用PHP實(shí)現(xiàn)的四則運(yùn)算表達(dá)式計(jì)算實(shí)現(xiàn)代碼

 更新時(shí)間:2011年08月02日 22:14:18   作者:  
題目要求:有一個(gè)四則運(yùn)算的字符串表達(dá)式,編寫一個(gè)函數(shù),計(jì)算四則運(yùn)算的結(jié)果
PHP實(shí)現(xiàn):
復(fù)制代碼 代碼如下:

<?php
/**
* 計(jì)算四則運(yùn)算表達(dá)式
*/
error_reporting(E_ALL);
$exp = '(1+2*(3+5)/4)*(3+(5-4)*2)';
$arr_exp = array();
for($i=0;$i<strlen($exp);$i++){
$arr_exp[] = $exp[$i];
}
$result = calcexp( array_reverse($arr_exp) );
echo $exp . '=' . $result;
function calcexp( $exp ){
$arr_n = array();
$arr_op = array();
while( ($s = array_pop( $exp )) != '' ){
if( $s == '(' ){
$temp = array(); $quote = 1; $endquote = 0;
while( ($t = array_pop($exp)) != '' ){
if( $t == '(' ){
$quote++;
}
if( $t == ')' ){
$endquote++;
if( $quote == $endquote ){
break;
}
}
array_push($temp, $t);
}
$temp = array_reverse($temp);
array_push($arr_n, calcexp($temp) );
}else if( $s == '*' || $s == '/' ){
$n2 = array_pop($exp);
if( $n2 == '(' ){
$temp = array(); $quote = 1; $endquote = 0;
while( ($t = array_pop($exp)) != '' ){
if( $t == '(' ){
$quote++;
}
if( $t == ')' ){
$endquote++;
if( $quote == $endquote )
break;
}
array_push($temp, $t);
}
$temp = array_reverse($temp);
$n2 = calcexp($temp);
}
$op = $s;
$n1 = array_pop($arr_n);
$result = operation($n1, $op, $n2);
array_push($arr_n, $result);
}elseif( $s == '+' || $s == '-' ){
array_push($arr_op, $s);
}else{
array_push($arr_n, $s);
}
}
$n2 = array_pop($arr_n);
while( ($op = array_pop($arr_op)) != '' ){
$n1 = array_pop($arr_n);
$n2 = operation($n1, $op, $n2);
}
return $n2;
}
function operation( $n1, $op, $n2 ){
switch ($op) {
case '+':
return intval($n1) + intval($n2);
break;
case '-':
return intval($n1) - intval($n2);
break;
case '*':
return intval($n1) * intval($n2);
break;
case '/':
return intval($n1) / intval($n2);
break;
}
}

這個(gè)實(shí)現(xiàn)方式中使用了兩個(gè)堆棧,一個(gè)用來存儲(chǔ)數(shù)字,一個(gè)用來存儲(chǔ)運(yùn)算符,遇到括號(hào)以后就遞歸進(jìn)入括號(hào)內(nèi)運(yùn)算,實(shí)現(xiàn)方式有點(diǎn)笨拙,后面補(bǔ)充一下“逆波蘭表達(dá)式”的算法實(shí)現(xiàn)。

相關(guān)文章

  • PHP中遍歷數(shù)組的三種常用方法實(shí)例分析

    PHP中遍歷數(shù)組的三種常用方法實(shí)例分析

    這篇文章主要介紹了PHP中遍歷數(shù)組的三種常用方法,結(jié)合實(shí)例形式分析了php針對(duì)數(shù)組使用for、foreach、list()、each()和while聯(lián)合使用遍歷數(shù)組相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • PHP處理JSON字符串key缺少雙引號(hào)的解決方法

    PHP處理JSON字符串key缺少雙引號(hào)的解決方法

    這篇文章主要介紹了PHP處理JSON字符串key缺少雙引號(hào)的解決方法,是非常常見的一類錯(cuò)誤處理情況,需要的朋友可以參考下
    2014-09-09
  • PHP實(shí)現(xiàn)支持SSL連接的SMTP郵件發(fā)送類

    PHP實(shí)現(xiàn)支持SSL連接的SMTP郵件發(fā)送類

    這篇文章主要介紹了PHP實(shí)現(xiàn)支持SSL連接的SMTP郵件發(fā)送類,實(shí)例分析了php實(shí)現(xiàn)smtp郵件發(fā)送類的原理與技巧,以及支持SSL連接的方法,需要的朋友可以參考下
    2015-03-03
  • php獲取指定范圍內(nèi)最接近數(shù)的方法

    php獲取指定范圍內(nèi)最接近數(shù)的方法

    這篇文章主要介紹了php獲取指定范圍內(nèi)最接近數(shù)的方法,可實(shí)現(xiàn)根據(jù)給定區(qū)間長(zhǎng)度劃分各個(gè)區(qū)間,并在其中尋找與給定數(shù)最接近的數(shù),需要的朋友可以參考下
    2015-06-06
  • PHP類型約束用法示例

    PHP類型約束用法示例

    這篇文章主要介紹了PHP類型約束用法,結(jié)合實(shí)例形式分析了php針對(duì)特定場(chǎng)合及特定類型進(jìn)行強(qiáng)制類型約束的操作方法,需要的朋友可以參考下
    2016-09-09
  • PHP生成唯一訂單號(hào)

    PHP生成唯一訂單號(hào)

    這篇文章主要給大家介紹了一位網(wǎng)友PHP生成唯一訂單號(hào)的思路和示例,感覺非常不錯(cuò),需要的朋友可以參考下
    2015-07-07
  • web php include攻防世界php安全示例詳解

    web php include攻防世界php安全示例詳解

    這篇文章主要介紹了php安全防護(hù)的防注入include文件示例詳解,有需要的朋友可以借鑒參考下, 希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10
  • php實(shí)現(xiàn)批量修改文件名稱的方法

    php實(shí)現(xiàn)批量修改文件名稱的方法

    這篇文章主要介紹了php實(shí)現(xiàn)批量修改文件名稱的方法,涉及php針對(duì)文件的遍歷及文件名的替換操作相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • thinkphp查詢,3.X 5.0方法(親試可行)

    thinkphp查詢,3.X 5.0方法(親試可行)

    下面小編就為大家?guī)硪黄猼hinkphp查詢,3.X 5.0方法(親試可行)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Mac OS下配置PHP+MySql環(huán)境

    Mac OS下配置PHP+MySql環(huán)境

    本文詳細(xì)介紹了在mac OS系統(tǒng)下安裝配置PHP+MySql環(huán)境的詳細(xì)步鄹,十分的全面,這里推薦給有相同需求的小伙伴們。
    2015-02-02

最新評(píng)論

长白| 尼玛县| 聊城市| 临潭县| 双桥区| 卫辉市| 封开县| 沂源县| 冕宁县| 江源县| 太仓市| 那坡县| 克什克腾旗| 高平市| 多伦县| 孟连| 尚志市| 商水县| 楚雄市| 海兴县| 茌平县| 福清市| 新密市| 灵山县| 翼城县| 仁怀市| 繁昌县| 霍城县| 彭水| 泊头市| 灵寿县| 中方县| 兰考县| 渭源县| 昌吉市| 禄丰县| 吉林市| 托里县| 上虞市| 隆安县| 中阳县|