• 8、奇怪的表达式求值--2017网易春招


    [编程题] 奇怪的表达式求值
    时间限制:1秒
    空间限制:32768K
    常规的表达式求值,我们都会根据计算的优先级来计算。比如*/的优先级就高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+, - 和 *)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少 
    输入描述:
    输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9. 保证表达式都是合法的,排列规则如样例所示。
     
    输出描述:
    输出一个数,即表达式的值
     
    输入例子:
    3+5*7
     
    输出例子:
    56
     
    解题思路:本题就按照输入的字符顺序进行计算即可,result = int(a[0] - '0'),然后定义字符tmp存储计算符,执行相应的运算,直到最后一个,每次计算完i++,目的跳过取的那个数字
    注意点:注意字符要转成数字,否则结果不对。例int(a[0] - '0')
     1 #include <iostream>
     2 #include <string>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     string a;
     8     while(cin>>a)
     9     {
    10         int n = a.size();
    11         int result = int(a[0] - '0');
    12 
    13         for(int i=1;i<n;i++)
    14         {
    15             char tmp = a[i];
    16             if(tmp == '+')
    17             {
    18                 result += int(a[i+1] - '0');
    19             }
    20             else if(tmp == '-')
    21             {
    22                 result -= int(a[i+1] - '0');
    23             }
    24             else if(tmp == '*')
    25             {
    26                 result *= int(a[i+1] - '0');
    27             }
    28             else
    29             {
    30                 result /= int(a[i+1] - '0');
    31             }
    32             i++;
    33         }
    34         cout<<result<<endl;
    35 
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    centos6 vps部署rails
    初始设置ubuntu 16.04 Vps部署rails
    自己买的书籍
    linux mint 18.2 install erlang
    Bunder: What does :require => nil in Gemfile mean?
    javascript箭头函数
    SharpGL学习笔记(一) 平台构建与Opengl的hello World
    动力学仿真引擎ODE的学习笔记,C#演示(一)
    设计模式之 面向对象的养猪厂的故事,C#演示(二)
    设计模式之 面向对象的养猪厂的故事,C#演示(一)
  • 原文地址:https://www.cnblogs.com/qqky/p/6922736.html
Copyright © 2020-2023  润新知