All pastes #251644 Raw Edit

Untitled

public cpp v1 · immutable
#251644 ·published 2006-11-18 12:25 UTC
rendered paste body
#include <iostream>#include <cassert>using namespace std;int find_value(){    int value=0, seek_char, temp, op;    bool uminus=false;    seek_char = getc(stdin);    if(seek_char == '-') uminus = true, seek_char = getc(stdin);    if(seek_char == '(') value = find_value();    else ungetc(seek_char, stdin), scanf("%d", &value);    if(uminus) uminus = false, value *= -1;    while(1) {        seek_char = getc(stdin);        if(seek_char == -1 || seek_char == ')' || seek_char == '\n') break;        op = seek_char;        seek_char = getc(stdin);        if(seek_char == '-') uminus = true, seek_char = getc(stdin);        if(seek_char == '(') temp = find_value();        else ungetc(seek_char, stdin), scanf("%d", &temp);        if(uminus) uminus = false, temp *= -1;        if(op == '+') value += temp;        else if(op == '-') value -= temp;        else assert(op == '*'), value *= temp;    }    return value;}int main(){    printf("%d", find_value());    return 0;}