zoukankan      html  css  js  c++  java
  • p1981 表达式求值

    题目描述

    给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。

    输入格式

    一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“++”和乘法运算符“ imes×”,且没有括号,所有参与运算的数字均为 00 到 2^{31}-12311 之间的整数。

    输入数据保证这一行只有0-909、++、 imes×这 1212种字符。

    输出格式

    一个整数,表示这个表达式的值。

    注意:当答案长度多于 44 位时,请只输出最后44 位,前导00 不输出。

    #include <cstdio>
    const int mod = 10000;
    int x,s,t;
    char c;
    int main(){
    scanf("%d",&t);
    while(scanf("%c",&c) && c != ' ')

    scanf("%d",&x);
    if(c == '*') t = t * x % mod;
    else s = (s + t) % mod,t = x;

    }
    printf("%d ",(s + t) % mod);

    这样一看其实代码很简洁(一条到晚没事干就看这个题了......)

    首先我们scanf读入第一个数字,然后我们读入紧随其后的一个字符,分布计算并且步步求余,这样到最后不会爆数据范围,计算量也会比较小。读完字符后我们读入下一个数,在测试点里应该是没有太大的数的,如果那个数爆long long了的话,这个题会更复杂一点。当我们读完两个数和一个运算符之后,就可以计算一步了,这里特判一下,计算完之后进行取余。因为只有加号和乘号,这里我们需要考虑的东西就会少很多。然后直接输出答案就好了。核心部分主要是运算的那一块。仔细想想其实这个算法很容易理解。

  • 相关阅读:
    u-boot中网口处理--硬件部分
    移动开发
    多台Mac电脑使用一个apple开发者账号
    AppStore苹果应用支付开发(In App Purchase)翻译
    IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法
    【iOS越狱开发】如何将应用打包成.ipa文件
    Xcode 证书生成、设置、应用
    iOS 证书与签名 解惑详解
    打包iOS应用程序
    什么是KBEngine
  • 原文地址:https://www.cnblogs.com/dairuizhe/p/12726280.html
Copyright © 2011-2022 走看看