【网易2017春招】奇怪的表达式求值 解题报告

【网易2017春招】奇怪的表达式求值 解题报告

标签(空格分隔): 牛客网


题目地址:【网易2017春招】奇怪的表达式求值

题目描述:

常规的表达式求值,我们都会根据计算的优先级来计算。比如*/的优先级就高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+,
- 和 *)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少
  

输入:

输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9.
保证表达式都是合法的,排列规则如样例所示。

输出:

输出一个数,即表达式的值

样例输入:

3+5*7

样例输出:

56

Ways

幸亏看清了题目,所有参与运算的数字都是0-9之间的,这样就保证不会出现多位数字,因此题目变的很简单。

#include <stdio.h>
int main() {
    char line[1000];
    while (scanf("%s", line) != EOF) {
        int len = strlen(line);
        int ans = line[0] - '0';
        for (int i = 1; i < len; i += 2) {
            char x = line[i];
            int y = line[i + 1] - '0';
            if (x == '+') {
                ans += y;
            } else if (x == '-') {
                ans -= y;
            } else if (x == '*') {
                ans *= y;
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}

Date

2017 年 3 月 30 日

posted @ 2017-03-30 11:17  负雪明烛  阅读(15)  评论(0编辑  收藏  举报