習題 Q-1-2. 合成函數(2) (APCS201902)


提交答案

分數: 100 (部分)
時間限制: 1.0s
記憶體限制: 1G

作者:
題目類型

令 \(f(x)=2x–3 \) , \(g(x,y)=2x+y–7 \) , \(h(x,y,z)=3x–2y+z\) 。本題要計算一個合成函數的值,例如 \(h(f(5),g(3,4),3)=h(7,3,3)=18\)。

輸入格式

輸入一行,長度不超過 \(1000\),它是一個 \(f\), \(g\) 與 \(h\) 的合成函數,但所有的括弧與逗號都換成空白。輸入的整數絕對值皆不超過 \(1000\)。

輸出格式

輸出函數值。最後答案與運算過程不會超過正負 10 億的區間。

範例輸入

h f 5 g 3 4 3

範例輸出

18

留言


  • 0
    wu9824821  評論於2025年3月29日 2:52

    include<bits/stdc++.h>

    using namespace std;

    int eval(){ string s; cin >> s;int x; int y; int z;//string 以空白和換行分界

    if(s=="f"){
        x = eval();
        return 2*x-3;
    }
    if(s=="g"){
        x = eval();
        y = eval();
        return 2*x + y -7;
    }
    
    if(s=="h"){
        x = eval();
        y = eval();
        z = eval();
        return 3*x - 2*y + z;
    }
    
    else{
        /*int ans=0;
        or(auto i : s){
            ans += ans*10 + s[i] -'0';
        }
        return  ans;
        */
       return stoi(s); // stoll
    }

    } int main(){ cout<<eval(); }