我要加入

巴哈程式競技、電資社團

會長:N0983658212 / 美好的過去漸行漸遠開設日:2020-11-27 22:44:16

  • EXP

  • 資金226803  
  • 招募制度:審核制
  • 成員:297 人
  • 昨日人氣:0

四則運算

推上精選編輯

近期編輯:rk42745417liu92112711 ...看更多

#include <bits/stdc++.h>
using namespace std;
string input;
double f(int l, int r) {
    int tmp = 0;
    for(int i = r; i >= l; i--) {
        if(input[i]=='(') tmp++;
        if(input[i]==')') tmp--;
        if(input[i]=='+'&&tmp==0) return f(l, i-1)+f(i+1, r);
        if(input[i]=='-'&&tmp==0) return f(l, i-1)-f(i+1, r);
    }
    tmp = 0;
    for(int i = r; i >= l; i--) {
        if(input[i]=='(') tmp++;
        if(input[i]==')') tmp--;
        if(input[i]=='*'&&tmp==0) return f(l, i-1)*f(i+1, r);
        if(input[i]=='/'&&tmp==0) return f(l, i-1)/f(i+1, r);
    }
    if(input[l]=='('&&input[r]==')') return f(l+1, r-1);
    if(input[l]==' '&&input[r]==' ') return f(l+1, r-1);
    if(input[l]=='(') return f(l+1, r);
    if(input[r]==')') return f(l, r-1);
    if(input[l]==' ') return f(l+1, r);
    if(input[r]==' ') return f(l, r-1);
    int num=0;
    for(int i=l; i<=r; i++) num = (double)num*10+input[i]-'0';
    return num;
}
int main(){
  while(getline(cin, input))
    printf("%g\n", f(0, input.length()-1));
}

公會首頁

主選單
程式相關
  教學
  小作品
  程式範例
競技程式(競程)
  一些網站
  學習資源
資安相關
年會介紹
公會 Rule
  Wiki 百科
關聯資料

目前沒有資料連到「四則運算」。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】