codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
//tinh bieu thuc cay nhi phan #include <iostream> #include <conio.h> using namespace std; int N; int main() { int test_case; freopen("testcase.txt", "r", stdin); for(test_case = 1; test_case <= 10; ++test_case) { int i; int Number[1001] = { 0 }, Firstchild[1001] = { 0 }, Secondchild[1001] = { 0 }; char Operator[1001] = { 0 }; cin >> N; int max; for(i = 0; i < N; i++) { int addr; char buf[10]; cin >> addr; cin >> buf; if ((buf[0] == '+') || (buf[0] == '-') || (buf[0] == '*') || (buf[0] == '/')) { Operator[addr] = buf[0]; cin >> Firstchild[addr] >> Secondchild[addr]; max = addr; } else { int count = 0, num = 0; while(buf[count+1] != '\0') count++; num = buf[count] - '0'; for(int j = 0; j < count; j++) { int temp = buf[j] - '0'; int k = count - j; while(k > 0) { temp = temp * 10; k--; } num += temp; } Number[addr] = num; } } for(i = max; i >=1; i--) { if(Operator[i] == '+') Number[i] = Number[Firstchild[i]] + Number[Secondchild[i]]; if(Operator[i] == '-') Number[i] = Number[Firstchild[i]] - Number[Secondchild[i]]; if(Operator[i] == '*') Number[i] = Number[Firstchild[i]] * Number[Secondchild[i]]; if(Operator[i] == '/' && Number[Secondchild[i]] != 0) Number[i] = Number[Firstchild[i]] / Number[Secondchild[i]]; } cout << "#" << test_case; cout << " " << Number[1] << endl; } getch(); return 0; }
Private
[
?
]
Run code
Submit