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

    试题描述

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

    输入
    仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号,所有参与运算的数字均为0到2^31-1之间的整数。输入数据保证这一行只有0到9、+、*这12种字符。
    输出
    输出只有一行,包含一个整数,表示这个表达式的值。注意:当答案长度多于4位时,请只输出最后4位,前导0不输出。
    输入示例
    1+1*3+4
    输出示例
    8
    其他说明
    数据范围:0≤表达式中加法运算符和乘法运算符的总数≤100000

    个人认为是一道很好的题,主要是处理好输入(用while)

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int n,ans=0,temp=1;
     8     char ch;
     9     scanf("%d",&n);
    10     while(cin>>ch)
    11     {
    12         temp*=n;   //temp先暂时记录 
    13         temp%=10000;
    14         if(ch=='+') {ans+=temp;ans%=10000;temp=1;}  //如果是加号,就先加上之前的乘法 
    15         scanf("%d",&n);
    16         n%=10000;   //不断地取后四位 
    17     }
    18     temp*=n; //别忘了最后一个数 
    19     ans+=temp;
    20     ans%=10000;
    21     printf("%d",ans);
    22     system("pause");
    23     return 0;
    24 }
    25 //本题的主要思想是,先用temp暂时记录,如果遇到加号,就停止;并把当前的乘法答案加入总答案。
    26 //如果是连乘,就用temp一直乘下去,这样的答案就是连乘的答案 。 
    NOIP201302表达式求值
  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/YXY-1211/p/5154775.html
Copyright © 2011-2022 走看看