題目連結
d002: 習題 Q-1-2. 合成函數(2) (APCS201902)
我的想法
利用遞迴做函數的輸入及計算,同 d001: 例題 P-1-1. 合成函數(1)
參考解答
d0021 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include <bits/stdc++.h> #define ouo ios_base::sync_with_stdio(false), cin.tie(0) #define ll long long #define db double using namespace std;
int eval() { int x, y, z; char token[5]; cin >> token; if (token[0] == 'f') { x = eval(); return 2 * x - 3; } else if (token[0] == 'g') { x = eval(); y = eval(); return 2 * x + y - 7; } else if (token[0] == 'h') { x = eval(); y = eval(); z = eval(); return 3 * x - 2 * y + z; } else { return atoi(token); } }
int main() { cout << eval() << "\n"; return 0; }
|