zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    上传本地项目到git服务器
    linux服务器部署web环境(一)
    nginx+tomcat负载集群部署
    selenium学习历程(二)
    selenium学习历程(一)
    在 Acer p236 上装 win7 和 ubuntu 双系统
    Ubuntu (14.04) 如何安装和配置Qt
    Android 蓝牙的常用操作
    OpenCL: Shared memory between CPU and GPU in Android development of Qaulcomm plateform
    Android 系统支持的编解码器
  • 原文地址:https://www.cnblogs.com/qqky/p/6922736.html
Copyright © 2011-2022 走看看