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

hdu3596(逆波蘭表達式求值)

/*************************************/
/*支持數(shù)字(而非表達式)前面有正負號   */
/*支持浮點數(shù)的+,-,*,/,^ 運算      */
/*************************************/
#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標記當前是否可以輸入數(shù)字, hasDot標記是否已經(jīng)輸入小數(shù)點
 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 閱讀(727) 評論(0)  編輯 收藏 引用 所屬分類: HDU題解

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導航

統(tǒng)計

常用鏈接

留言簿

文章分類

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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天堂| 国产精品久久久久久五月尺| 亚洲欧洲日本国产| 国产视频观看一区| 国产视频不卡| 136国产福利精品导航| 亚洲国产老妈| 亚洲裸体视频| 亚洲女性喷水在线观看一区| 欧美一区网站| 欧美不卡一卡二卡免费版| 国产日韩在线视频| 国产亚洲欧美日韩一区二区| 娇妻被交换粗又大又硬视频欧美| 亚洲经典一区| 亚洲欧美日韩国产综合| 国产精品视频网站| 久久天天躁夜夜躁狠狠躁2022| 欧美高清自拍一区| 欧美~级网站不卡| 亚洲人成在线观看| 亚洲午夜伦理| 欧美成人国产一区二区| 国产精品激情电影| 亚洲高清av在线| 亚洲欧美精品一区| 欧美激情a∨在线视频播放| 亚洲毛片av| 久久夜色精品国产噜噜av| 国产精品国产三级国产a| 在线看不卡av| 香蕉乱码成人久久天堂爱免费| 欧美激情第六页| 午夜精品久久久久久久99水蜜桃 | 亚洲伊人一本大道中文字幕| 亚洲特级毛片| 欧美wwwwww| 激情成人av| 欧美在线视频免费播放| 亚洲精品黄网在线观看| 久久婷婷国产麻豆91天堂| 国产日韩欧美一区在线| 亚洲视频一区二区| 欧美激情一级片一区二区| 久久国产主播精品| 国产麻豆成人精品| 亚洲一区二区3| 亚洲精品国产精品国自产观看浪潮| 久久成人免费| 老司机精品视频网站| 中文一区二区| 亚洲美女视频网| 久久久久综合一区二区三区| 国产精品国产三级国产普通话99| 亚洲日本成人| 欧美国产精品| 免费不卡中文字幕视频| 亚洲福利视频一区二区| 久久婷婷国产综合尤物精品| 亚洲午夜在线视频| 亚洲国产老妈| 欧美电影免费网站| 最新国产成人av网站网址麻豆| 久久久久在线观看| 久久精品一二三| 亚洲第一黄色网| 欧美肥婆在线| 欧美高清视频| 一本一本久久a久久精品综合麻豆| 亚洲欧洲一区二区三区久久| 欧美日本国产| 午夜在线不卡| 久久久久久久久综合| 亚洲国产精品久久久久久女王| 欧美www在线| 欧美伦理在线观看| 午夜精品福利在线| 先锋影音国产精品| 亚洲国产成人午夜在线一区| 欧美激情第8页| 欧美日韩精品不卡| 中国亚洲黄色| 欧美在线高清视频| 午夜精品999| 亚洲在线免费观看| 黄色国产精品一区二区三区| 欧美成人69av| 欧美人与性动交α欧美精品济南到| 99国产精品| 免费在线播放第一区高清av| 欧美噜噜久久久xxx| 亚洲特级片在线| 亚洲在线视频免费观看| 激情久久久久久久| 亚洲国内高清视频| 国产精品女人毛片| 欧美成人精品1314www| 欧美日韩精品二区| 可以免费看不卡的av网站| 欧美国产极速在线| 久久福利影视| 欧美日韩一区在线观看| 你懂的国产精品| 国产精品视频内| 91久久久久久久久| 国内外成人免费激情在线视频| 亚洲人精品午夜| 精品1区2区3区4区| 亚洲欧美大片| 亚洲专区一二三| 欧美日韩成人| 欧美激情精品久久久久久蜜臀| 国产精品一区三区| 日韩视频免费| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲欧洲日本在线| 午夜视频久久久久久| 一区二区三区四区在线| 久久精品一区二区| 久久精品国产99精品国产亚洲性色| 欧美高清不卡| 久久人人爽人人爽| 国产性天天综合网| 亚洲尤物在线| 亚洲欧美日韩在线观看a三区| 欧美绝品在线观看成人午夜影视| 美女日韩欧美| 国产午夜亚洲精品羞羞网站| 亚洲一区二区四区| 亚洲欧美日韩天堂| 国产精品久久国产精品99gif| 日韩手机在线导航| 一区二区三区精密机械公司| 欧美成人有码| 最近中文字幕日韩精品| 亚洲乱码久久| 老妇喷水一区二区三区| 欧美激情日韩| 99亚洲伊人久久精品影院红桃| 免费视频一区二区三区在线观看| 久久视频一区| 亚洲福利av| 欧美激情综合在线| 亚洲精品在线观| 亚洲一区999| 国产精品国产成人国产三级| 亚洲午夜一区二区| 欧美亚洲综合另类| 精品91免费| 欧美在线观看视频一区二区| 亚洲电影自拍| 有码中文亚洲精品| 久久亚洲免费| 欧美成人精品一区二区三区| 在线看成人片| 美女尤物久久精品| 亚洲国内在线| 亚洲婷婷国产精品电影人久久| 欧美性开放视频| 欧美一区二区三区精品电影| 欧美xxxx在线观看| 亚洲视频在线观看| 国产香蕉久久精品综合网| 久久久亚洲人| 亚洲精品在线视频观看| 欧美一区二区精美| 永久555www成人免费| 欧美精品乱人伦久久久久久| 亚洲午夜在线观看| 欧美国产1区2区| 欧美国产一区视频在线观看| aa日韩免费精品视频一| 久久精品国产亚洲aⅴ| 亚洲精品欧美精品| 国产日韩在线视频| 欧美激情一区二区三区蜜桃视频| 亚洲视频一二区| 麻豆乱码国产一区二区三区| 亚洲线精品一区二区三区八戒| 黄色工厂这里只有精品| 欧美日产国产成人免费图片| 欧美一级艳片视频免费观看| 亚洲欧洲精品成人久久奇米网| 欧美一级网站| avtt综合网| 亚洲大片免费看| 国产午夜一区二区三区| 欧美日韩日日骚| 麻豆av一区二区三区| 亚洲欧美日韩网| 日韩视频一区二区三区| 久久久免费精品| 亚洲天堂av电影| 亚洲乱码国产乱码精品精98午夜 | 国产日韩欧美在线播放不卡| 欧美高清视频一区二区三区在线观看 | 欧美一区永久视频免费观看| 亚洲日本中文| 欧美国产视频在线| 久久人人看视频|