🏆今日学习目标: 🍀学习表达式求值题目 ✅创作者:贤鱼 ⏰预计时间:25分钟 🎉个人主页:贤鱼的个人主页 🔥专栏系列:c++
- 题目
- 思路
- AC代码
- 🏆结束语:如果有需要可以订阅一下专栏,持续更新内容!
给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 输入格式 一行,为需要你计算的表达式,表达式中只包含数字、加法运算符 “+” 和乘法运算符 “×”,且没有括号,所有参与运算的数字均为 0 到 2^31 之间的整数。 输入数据保证这一行只有 0-9、+、× 这 12种字符。 输出格式 一个整数,表示这个表达式的值。 注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。 输入输出样例 输入 #1复制 1+13+4 输出 #1复制 8 输入 #2复制 1+12345678901 输出 #2复制 7891 输入 #3复制 1+1000000003*1 输出 #3复制 4 说明/提示 对于 30% 的数据,0≤0≤ 表达式中加法运算符和乘法运算符的总数 ≤100。 对于 80% 的数据,0≤0≤ 表达式中加法运算符和乘法运算符的总数 ≤1000。 对于 100% 的数据,0≤0≤ 表达式中加法运算符和乘法运算符的总数 ≤100000。
思路题目中明确说明了只有*和+,*优先众所周知,所以我们可以优先处理 *,假设这个是 ,那么他前后的数字就要相乘,我们让i+1=i(i+1)个数字,这样子可以避免连续乘号导致出现错误,我们在最后再将所有答案全部相加就好了(注意题目要求只输出4位,所以我们每次处理%10000和最后答案%10000就可以完美处理)
AC代码#include
#include
#include
#include
using namespace std;
int ans=0,a;
char s[100001000];//储存输入内容(貌似不需要这么大。。)
char fh[101010000];
int num[101010100];//上头的fh是单独储存所以的运算符,这个num是储存所有的数字
int main(){
cin>>s;
int nn=0,f=0;
int len=strlen(s);
for(int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?