1180: [NOIP2013普及组]表达式求值
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 38 Solved: 12
[Submit][Status][Web Board]
Description
给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。
Input
输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号
,所有参与运算的数字均为0到231-1之间的整数。输入数据保证这一行只有0~ 9、+、*这12种字符。
0≤表达式中加法运算符和乘法运算符的总数≤100000
,所有参与运算的数字均为0到231-1之间的整数。输入数据保证这一行只有0~ 9、+、*这12种字符。
0≤表达式中加法运算符和乘法运算符的总数≤100000
Output
输出只有一行,包含一个整数,表示这个表达式的值。
注意:当答案长度多于4位时,请只输出最后4位,前导0不输出。
注意:当答案长度多于4位时,请只输出最后4位,前导0不输出。
Sample Input
1+1*3+4
Sample Output
8
AC代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int mod = 10000;
int main(){int sum = 0, a = 0;char ch = '!';//初始化任意东西 while(1){if(ch == '\n') break;a = 0;ch = getchar();while(ch >= '0' && ch <= '9'){a = a * 10 + ch - '0';ch = getchar();}while(ch == '*'){int b = 0;ch = getchar();while(ch >= '0' && ch <= '9'){b = b * 10 + ch - '0';ch = getchar();}a = (a * b) % mod;}sum = (sum + a) % mod;}printf("%d", sum % mod);return 0;
}