#include #include #include #include #include #include #include using namespace std; void display(int answer) { int i; string strAns, line1, line2, line3; stringstream ss; ss << answer; strAns = ss.str(); for(i = 0; i < strAns.length(); i++) { switch(strAns[i]) { case '0': line1 = line1 + " _ "; line2 = line2 + "| |"; line3 = line3 + "|_|"; break; case '1': line1 = line1 + " "; line2 = line2 + " |"; line3 = line3 + " |"; break; case '2': line1 = line1 + " _ "; line2 = line2 + " _|"; line3 = line3 + "|_ "; break; case '3': line1 = line1 + " _ "; line2 = line2 + " _|"; line3 = line3 + " _|"; break; case '4': line1 = line1 + " "; line2 = line2 + "|_|"; line3 = line3 + " |"; break; case '5': line1 = line1 + " _ "; line2 = line2 + "|_ "; line3 = line3 + " _|"; break; case '6': line1 = line1 + " _ "; line2 = line2 + "|_ "; line3 = line3 + "|_|"; break; case '7': line1 = line1 + " _ "; line2 = line2 + " |"; line3 = line3 + " |"; break; case '8': line1 = line1 + " _ "; line2 = line2 + "|_|"; line3 = line3 + "|_|"; break; case '9': line1 = line1 + " _ "; line2 = line2 + "|_|"; line3 = line3 + " _|"; break; } } cout << line1 << endl; cout << line2 << endl; cout << line3 << endl; } int main() { int i, opd1, opd2; int ans = 0, tempInt; string buffer, tempStr; stack RPN; while(1) { buffer.clear(); getline(cin, buffer, '\n'); if(buffer.empty()){ break; } if(buffer.length() == 1) { RPN.push(int(buffer[0])-48); } else { for(i = 0; i < buffer.length(); i++) { if(buffer[i] >= 48 && buffer[i] <= 57) { tempStr.clear(); while(buffer[i] != 32 && buffer[i] != 0) { if(buffer[i] >= 48 && buffer[i] <= 57) { tempStr = tempStr + buffer[i]; i++; } } tempInt = atoi(tempStr.c_str()); RPN.push(tempInt); i--; } else { opd2 = RPN.top(); RPN.pop(); opd1 = RPN.top(); RPN.pop(); switch(buffer[i]) { case '+': ans = opd1 + opd2; break; case '-': ans = opd1 - opd2; break; case '*': ans = opd1 * opd2; break; case '/': ans = opd1 / opd2; break; case '^': ans = int(pow(double(opd1), double(opd2))); break; } RPN.push(ans); } i++; } } display(RPN.top()); RPN.pop(); } return 0; }