青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

hdu3596(逆波蘭表達(dá)式求值)

/*************************************/
/*支持?jǐn)?shù)字(而非表達(dá)式)前面有正負(fù)號   */
/*支持浮點(diǎn)數(shù)的+,-,*,/,^ 運(yùn)算      */
/*************************************/
#include <stdio.h>
#include <memory>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <map>
#include <cmath>
#include <set>
#include <queue>
#include <time.h>
#include <limits>
#include <stack>
using namespace std;
#define N 10005
#define eps 1e-9
#define vType double
struct node{
 vType val;
 char op;
 node(vType _val=0, char _op = ' '):val(_val), op(_op){}
}nodes[N];
char str[N];
inline bool isDigit(char ch){
 return ch >= '0' && ch <= '9';
}
map<char, int> ms;
void init(){
 ms['('] = 0;
 ms['-'] = ms['+'] = 1;
 ms['*'] = ms['/'] = 2;
 ms['^'] = 3;
}
vType calPoland(node* nodes, int k){
 int i, j;
 vType a, b;
 stack<vType> s;
 for(i = 0; i < k; i++){
  if(nodes[i].op == ' '){
   s.push(nodes[i].val);
  }else{
   a = s.top();
   s.pop();
   b = s.top();
   s.pop();
   switch(nodes[i].op){
    case '+':
     s.push(b + a);
     break;
    case '-':
     s.push(b - a);
     break;
    case '*':
     s.push(b * a);
     break;
    case '/':
     if(fabs(a) < eps) throw true;
     s.push(b / a);
     break;
    case '^':
     s.push(pow(b, a));
     break;
   }
  }
 }
 return s.top();
}
vType poland(char* str){
 int i, k, sign;
 bool inNum, hasDot;  //inNum標(biāo)記當(dāng)前是否可以輸入數(shù)字, hasDot標(biāo)記是否已經(jīng)輸入小數(shù)點(diǎn)
 stack<char> oper;
 for(i = k = 0, sign = 1, inNum = true; str[i]; i++){
  if(isDigit(str[i]) || str[i] == '.'){
   if(inNum){
    vType val;
    double w = 1;
    if(str[i] == '.'){
     hasDot = true;
     val = 0;
    }
    else{
     val = str[i] - '0';
     hasDot = false;
    }
    i++;
    while(isDigit(str[i]) || str[i] == '.'){
     if(str[i] == '.'){
      if(hasDot) throw true;
      hasDot = true;
     }else{
      if(hasDot){
       w *= 0.1;
       val += (str[i] - '0') * w;
      }
      else val = val * 10 + str[i] - '0';
     }
     i++;
    }
    i--;
    nodes[k++] = node(val * sign, ' ');
    sign = 1;
    inNum = false;
   }else throw true;
  }else{
   switch(str[i]){
    case '(':
     oper.push(str[i]);
     break;
    case ')':
     while(!oper.empty() && oper.top() != '('){
      nodes[k++] = node(0, oper.top());
      oper.pop();
     }
     if(oper.empty()) throw true;  //沒有與')'匹配的'('
     oper.pop();
     break;
    case '+':
    case '-':
    case '*':
    case '/':
    case '^':
     if(inNum){
      if(str[i] != '+' && str[i] != '-') throw true;
      while(str[i] == '+' || str[i] == '-'){
       if(str[i] == '-') sign *= -1;
       i++;
      }
      i--;
     }else{
      //while(!oper.empty() && ((str[i] != '^' && ms[str[i]] <= ms[oper.top()]) ||
      // ((str[i] == '^' && ms[str[i]] < ms[oper.top()])))){ //如果^是右結(jié)合的話就用這個
      while(!oper.empty() && ms[str[i]] <= ms[oper.top()]){
        nodes[k++] = node(0, oper.top());
        oper.pop();
      }
      oper.push(str[i]);
      inNum = true;
     }
     break;
   }
  }
 }
 while(!oper.empty()){
  nodes[k++] = node(0, oper.top());
  oper.pop();
 }
 return calPoland(nodes, k);
}
void Cal(char* str){
 try{
  vType ans = poland(str);
  printf("%.8lf\n", ans);
 }
 catch(bool){
  printf("The teacher is so lazy!\n");
 }
}
int main(){
#ifndef ONLINE_JUDGE
 //freopen("in.txt", "r", stdin);
 //freopen("out.txt", "w", stdout);
#endif
 init();
 while(~scanf("%s", str)) Cal(str);
 return 0;
}

posted on 2011-01-16 19:58 tw 閱讀(729) 評論(0)  編輯 收藏 引用 所屬分類: HDU題解

<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿

文章分類

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久亚洲精选| 欧美日韩一区二区三区在线看| 国产麻豆综合| 久久精品麻豆| 久久久国产精品一区二区中文| 影音先锋日韩精品| 亚洲夫妻自拍| 欧美精品播放| 欧美在线视频一区二区三区| 久久精品国产91精品亚洲| 1024欧美极品| 亚洲美女诱惑| 韩国av一区二区三区在线观看| 嫩草成人www欧美| 欧美日韩国产欧| 久久国内精品自在自线400部| 久久精品视频一| 亚洲视频在线观看视频| 午夜精品久久久久久久久久久久久| 久久久久久久久久久久久久一区 | 国产精品亚洲片夜色在线| 夜夜嗨av色一区二区不卡| 一区二区三区四区蜜桃| 国产亚洲精品一区二555| 欧美国产一区二区三区激情无套| 欧美精品三级| 久久伊人亚洲| 国产精品国产三级国产a| 久久久久久久一区二区三区| 欧美极品在线播放| 久久久久久久网| 欧美日韩不卡一区| 久久躁狠狠躁夜夜爽| 欧美日韩在线播放| 老司机久久99久久精品播放免费| 欧美视频一二三区| 欧美福利在线| 狠狠爱www人成狠狠爱综合网 | 中文一区二区在线观看| 欧美一级在线亚洲天堂| 亚洲最新色图| 裸体一区二区| 久久综合伊人77777蜜臀| 国产精品videossex久久发布| 欧美大片在线观看一区二区| 国产精品区免费视频| 亚洲欧洲精品一区二区| 国产一级揄自揄精品视频| 日韩午夜免费| 一本色道久久综合亚洲精品高清 | 欧美日韩mv| 亚洲电影在线看| 在线观看91久久久久久| 欧美影院精品一区| 性娇小13――14欧美| 欧美亚日韩国产aⅴ精品中极品| 欧美成人综合网站| 在线观看欧美成人| 久久久久久久一区二区三区| 久久久777| 韩国一区二区在线观看| 性欧美超级视频| 久久国产精品一区二区| 国产日韩精品一区观看 | 91久久国产精品91久久性色| 在线播放精品| 久久综合久久综合久久| 免费不卡在线观看| 亚洲成人资源网| 免费试看一区| 亚洲精品欧美一区二区三区| 正在播放亚洲| 国产精品久久久久久久久久免费| 一区二区三区精品视频在线观看| 亚洲一区二区毛片| 欧美午夜精品久久久久久人妖 | 亚洲午夜伦理| 久久精品91久久久久久再现| 国产一区二区高清不卡| 久久久国产精彩视频美女艺术照福利| 久久人人爽人人| 亚洲国产精品成人久久综合一区| 蜜臀久久久99精品久久久久久 | 日韩一级免费| 欧美一区二区三区免费在线看| 国产视频亚洲精品| 久久久综合网| 日韩午夜高潮| 久久久蜜桃一区二区人| 亚洲日本成人| 国产精品欧美激情| 久久国产天堂福利天堂| 亚洲福利一区| 先锋影院在线亚洲| 在线播放中文字幕一区| 欧美日韩精选| 久久久久久香蕉网| 亚洲日韩欧美视频| 久久精品一区二区国产| 亚洲精品免费一区二区三区| 国产精品theporn| 久久在线播放| 亚洲欧美日韩国产| 亚洲国产精品久久久| 亚洲欧美国产精品专区久久| 激情成人综合网| 国产精品yjizz| 久久一区二区三区av| 亚洲天堂久久| 亚洲国产精品小视频| 久久精品国产一区二区三区| 亚洲精品视频一区| 好看的日韩av电影| 国产精品高清免费在线观看| 久久亚洲欧美| 欧美一区三区三区高中清蜜桃 | 欧美激情视频网站| 欧美在线观看天堂一区二区三区| 亚洲美女黄网| 在线国产精品一区| 国产手机视频一区二区| 欧美日韩国产在线一区| 麻豆精品91| 久久久人成影片一区二区三区观看| 亚洲无线视频| 夜夜嗨av色综合久久久综合网| 欧美国产日本在线| 另类亚洲自拍| 亚洲激情欧美| 久久精品女人天堂| 最近中文字幕日韩精品| 欧美a一区二区| 久久久人成影片一区二区三区| 中文日韩在线| 一区二区三区四区在线| 亚洲国产人成综合网站| 欧美gay视频| 免费在线日韩av| 欧美性事免费在线观看| 欧美日韩免费一区二区三区| 欧美暴力喷水在线| 欧美韩国一区| 欧美另类视频| 欧美日韩精品一区视频| 欧美日韩xxxxx| 欧美视频一区二区| 国产精品毛片a∨一区二区三区|国 | 欧美一级片一区| 欧美在线一二三区| 久久精品女人| 免费在线亚洲欧美| 欧美激情第一页xxx| 欧美日韩久久久久久| 欧美日韩一区二区国产| 国产精品a级| 国产日韩av高清| 激情校园亚洲| 亚洲精品一区二区三区婷婷月| 亚洲精选91| 亚洲欧美日韩视频二区| 午夜在线成人av| 久久美女性网| 亚洲黄色成人久久久| 亚洲免费观看在线观看| 亚洲综合日韩在线| 久久久亚洲国产天美传媒修理工| 免费亚洲一区二区| 欧美日韩久久久久久| 国产精品一卡二| 影音先锋中文字幕一区| aa级大片欧美三级| 欧美有码视频| 亚洲国产经典视频| 亚洲制服少妇| 老司机免费视频一区二区三区| 欧美日本乱大交xxxxx| 国产精品乱码久久久久久| 精品动漫3d一区二区三区免费版| 亚洲国产日韩在线| 午夜精品视频一区| 欧美高清视频在线播放| 亚洲视频一区二区在线观看| 久久精品女人的天堂av| 欧美视频日韩| 在线激情影院一区| 亚洲欧美在线aaa| 欧美激情免费观看| 欧美亚洲免费在线| 欧美日韩性视频在线| 伊人成综合网伊人222| 亚洲欧美另类综合偷拍| 欧美激情精品久久久久久免费印度| 一区二区三区欧美在线| 欧美aa国产视频| 国产在线欧美日韩| 亚洲一区在线播放| 亚洲国产女人aaa毛片在线| 久久福利电影| 国产精品日韩在线播放| 99伊人成综合|