做流量网站怎么做,ppt汇报模板免费下载,免费seo营销优化软件下载,网页创建站点题2#xff1a;表达式求值
【题目描述】
给定一个只包含加法和乘法的算术表达式#xff0c;请你编程计算表达式的值。
【输入文件】
输入仅有一行#xff0c;为需要你计算的表达式#xff0c;表达式中只包含数字、加法运算符 “ ” “” “”和乘法运算符 “ ∗ ” “…题2表达式求值
【题目描述】
给定一个只包含加法和乘法的算术表达式请你编程计算表达式的值。
【输入文件】
输入仅有一行为需要你计算的表达式表达式中只包含数字、加法运算符 “ ” “” “”和乘法运算符 “ ∗ ” “∗” “∗”且没有括号所有参与运算的数字均为 0 0 0 到 231 − 1 231−1 231−1 之间的整数。输入数据保证这一行只有 0 ∼ 9 、 、 ∗ 0∼9、、∗ 0∼9、、∗这 12 12 12 种字符。
【输出文件】
输出只有一行包含一个整数表示这个表达式的值。注意当答案长度多于 4 4 4 位时请只输出最后 4 4 4 位前导 0 0 0 不输出。
【输入样例1】
11*34
【输出样例1】
8
【输入样例2】
11234567890*1
【输出样例2】
7891
【输入样例3】
11000000003*1
【输出样例3】
4
【样例说明】
样例 1 1 1 计算的结果为 8 8 8直接输出 8 8 8。
样例 2 2 2 计算的结果为 1234567891 1234567891 1234567891输出后 4 4 4 位即 7891 7891 7891。
样例 3 3 3 计算的结果为 1000000004 1000000004 1000000004输出后 4 4 4 位即 4 4 4。
【数据范围】
对于 30 % 30\% 30%的数据 0 ≤ 0≤ 0≤表达式中加法运算符和乘法运算符的总数 ≤ 100 ≤100 ≤100
对于 80 % 80\% 80%的数据 0 ≤ 0≤ 0≤表达式中加法运算符和乘法运算符的总数 ≤ 1000 ≤1000 ≤1000
对于 100 % 100\% 100%的数据 0 ≤ 0≤ 0≤表达式中加法运算符和乘法运算符的总数 ≤ 100000 ≤100000 ≤100000。
【代码如下】
#include bits/stdc.h
using namespace std;
ifstream cin(expr.in);
ofstream cout(expr.out);
long long a[100002]; // 储存数
bool b[100001]; // 储存运算符如果为乘号保存true加号则保存false
int main() {string str; // 以STL字符串的形式保存表达式其实字符数组应该也可以int i, t 0, top 0;long long sum 0;cin str;int len str.size();for (i 0; i len; i)if (str[i] ) { // 提取加号a[top] t;t 0;} else if (str[i] *) { // 提取乘号a[top] t;t 0;b[top] true;} elset t * 10 str[i] - 0; // 提取数a[top] t;for (i 1; i top; i)if (b[i]) { // 先算乘法// 这里做一个处理乘号左边的数保存0右边的保存a[i]*a[i1]%10000a[i 1] a[i] * a[i 1] % 10000;a[i] 0;}for (i 1; i top; i)// 再算加法因为我们之前做过处理所以全部加起来就行了sum (sum a[i]) % 10000;cout sum endl; // sum即为答案return 0;
}