#33-【刷题】表达式求值

表达式求值【NOIP2013普及组】 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。输入输出格式输入格式:输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号,所有参与运算的数字均为 0 到 2^31-1 之间的整数。输入数据保证这一行只有 0~ 9、+、*这 12 种字符。 输出格式:输出只有一行,包含一个整数,表示这个表达式的值。注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。输入输出样例 阅读详情

Description

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

Input

输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“ +” 和乘法运算符“ *”,且没有括号, 所有参与运算的数字均为 0 到 231-1 之间的整数。 输入数据保证这一行只有 0~ 9、 +、 *这 12 种字符。

Output

输出只有一行,包含一个整数, 表示这个表达式的值。 注意: 当答案长度多于 4 位时,请只输出最后 4 位, 前导 0 不输出。

Sample Input

【输入样例 1】 1+1*3+4 【输入样例 2】 1+1234567890*1 【输入样例 3】 1+1000000003*1 

Sample Output

【输出样例 1】8【输出样例 2】 7891【输出样例 3】4

HINT

【输入输出样例说明】

样例 1 计算的结果为 8, 直接输出 8。

样例 2 计算的结果为 1234567891, 输出后 4 位,即 7891。

样例 3 计算的结果为 1000000004, 输出后 4 位,即 4。

【数据范围】

对于 30%的数据, 0≤表达式中加法运算符和乘法运算符的总数≤100;

对于 80%的数据, 0≤表达式中加法运算符和乘法运算符的总数≤1000;

对于 100%的数据, 0≤表达式中加法运算符和乘法运算符的总数≤100000。

Code:

#include <iostream> // 24ms Solution
#include <string>

#define SIZE 100001

using namespace std;

string a;
int num[SIZE];
char op[SIZE];

int main(int argc, char** argv)
{
	long long res = 0, i = 0, temp = 0, n = 0;
	
	cin >> a;
	
	for ( ; ; ) // 分出运算符和数字
	{
		if ((a[i] == '+') || (a[i] == '*'))
		{
			op[++n] = a[i];
			num[n-1] = temp;
			temp = 0;
		}
		else
		{
			temp = temp * 10 + a[i] - '0';
			temp %= 10000;
		}
		if (++i == a.size())
		{
			break;
		}
	}
	num[n] = temp;
	num[n] = temp;
	temp = num[0];
	for (i = 1; i <= n; i++)
	{
		if (op[i] == '+') // 加法,把上次乘得的积加上去
		{
			res += temp;
			res %= 10000; // 防止越界
			temp = num[i];
		}
		else // 乘法
		{
			temp *= num[i];
			temp %= 10000;
		}
	}
	
	printf("%d", (res % 10000 + temp % 10000) % 10000);
	
	return 0;
}

 

NOIP2013普及组复赛第二题《表达式求值》测试数据10组 立即下载

相关推荐

机器学习——Anaconda下载安装教程

Anaconda详细下载安装教程

2401_83693485的博客 3068

NOIP2013普及组复赛第二题《表达式求值》CA代码

NOIP2013普及组复赛第二题《表达式求值》CA代码 1、题目 【题目描述】 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 【输入格式】 一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“×”,且没有括号,所有参与运算的数字均为 0到 2^31−1 之间的整数。输入数据保证这一行只有0−9 、+、× 这 12 种字符。 【输出格式】 一个整数,表示这...

tlcym的博客 1161

M1安装homebrew报错LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54解决方法

在mac系统中,使用homebrew可以很方便的管理包。但按照官网的说明执行命令时总是报错原因是这个资源访问有问题,那么我们可以直接使用国内的镜像。给大家推荐一个中国科学技术大学的镜像站点,里面有各种资源https言归正传,开始踩坑。......

qq_42427085的博客 1456

【NOIP2013普及组复赛】题2:表达式求值

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

lpstudio的博客 1435

Rijndael密码算法

一 什么是Rijndael Rijndael是由比利时密码学家设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。今后会有越来越多的密码软件支持这种算法。 Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特和256比特的范围内进行选择。不过在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。 二 Rijndael的加...

实践求真知 1万+

关于Oxford Radar RobotCar Dataset的学习笔记

https://oxford-robotics-institute.github.io/radar-robotcar-dataset/documentation 简介 雷达是 Navtech CTS350-X 调频连续波 (FMCW) 扫描雷达,在所使用的配置中提供 4.38 cm 的距离分辨率和 0.9 度的旋转分辨率,范围高达 163 m,同时提供对天气条件的稳健性这可能会给其他传感器模式带来麻烦。在其他配置中,Navtech CTS350-X 可以提供超过 650 m 的范围和更高的旋转速度。然而,对

禾烁的博客 5297

NOIP2013年普及组第二题:表达式求值

原文在这里:https://www.luogu.org/problemnew/show/P1981 好吧又是洛谷的。。。 首先,这道题很简单,由于只有乘法和加法两种运算,竟然还没有括号!!!简直就是普及组的奇迹!!!直接模拟不就好了? 直接上代码: #include&amp;amp;lt;iostream&amp;amp;gt; #include&amp;amp;lt;cstdlib&amp;amp;gt; #include&amp;amp;lt;cstd

ljp946的博客 2675

安卓手机游戏《英雄迷宫冒险》存档修改

警告 修改前务必备份存档文件夹。该游戏有自动删除存档的功能,有问题的存档会自动删除。 修改对应的游戏版本为1.5。 存档保存位置 内部存储\Android\data\com.xmmf.yxmgmx.taptap\files 该文件夹中文件如下: data.wsf:数据文件。 wsfSave0:第一个存档。 wsfSave1:第二个存档。 修改金钱的例子 先进游戏确认当前金钱数量。当前金钱是2498,然后退出游戏。 根据金钱数量计算出存档中的内容。2498的十六进制是9C2,存档中的内容在存档中搜索该数

番茄鸡蛋的专栏 9365

表达式求值---(中缀表达式转后缀表达式及后缀表达式求值结合)

题目: 利用栈编写表达式求值程序:输入含有“ + ”、“ - ”、“ * ”、“ / ”四则运算的表达式,其中负数要用(0 - 正数)表示,并以 = 结束。要求输出表达式的值。 输入格式 第一行:一个算术表达式 输出格式 第一行:算术表达式的值 输入样例 3 * (9 - 7) = 输出样例 6 一、解题思路: ①. 注意栈元素为整型类型。由于表达式的运算符号为字符类型,但依然能够以ASCII码形式储存在栈中,故栈元素可以不用定义为字符类型,而定义为整型类型数据即可,方便从后缀表达式中将字符类型.

Hunter_Kevin的博客 1228

西安交通大学软件学院——分布式系统练习题(综合题)

摘要:本文探讨了分布式系统的核心特性与关键问题。首先阐述了分布式系统的8种透明性特性,包括访问、定位、迁移等。然后通过具体案例分析了分布式事务的回滚机制、域名解析的迭代与递归过程、不同分布式系统的异同比较。重点讨论了RPC通信中客户端/服务器崩溃的处理方法,包括消灭、再生和到期三种策略。最后介绍了Lamport时间戳算法在进程通信中的应用及问题解决方案。全文涵盖了分布式系统设计中的透明性、可靠性、一致性等核心问题。

qq_73044452的博客 204

Matlab 轴承信号仿真+分析

文章目录项目说明1、信号仿真1.1 仿真公式1.2 信号参数设置1.3 代码实现2、仿真信号分析2.1 小波变换2.2 快速谱峭度 项目说明 本文主要解决两个问题: 1、仿真包含周期性冲击信号、随机干扰冲击信号、调制干扰信号以及随机噪声四个成分的故障轴承信号; 2、使用小波变换以及快速谱峭度对该仿真信号进行分析。 1、信号仿真 1.1 仿真公式 这里的仿真信号公式主要参考了包文杰学者的硕士论文《加权谱峭度故障诊断方法研究与应用》,列举公式如下: 周期性冲击信号仿真 随机干扰冲击信号仿真 调制

cocofisher的博客 9268

2013 NOIP 普及组 第2题 表达式求值

P1981 表达式求值 (NOIP2013) 注意: (我自己的一些错误和注意点) if ((s[i]>=’0′) && (s[i]<=’9′)) 这句话建议加上,因为谁知道在字符串末尾可能会有一些稀奇古怪的东西 每一个 case 下面都要写上 break 来退出当前 switch 语句(我也不知道为什么,加上以后貌似就对了,之前误判了很多乘号) 还...

dianyi2475的博客 561

基于matlab目标雷达横截面建模(附源码)

雷达系统依靠目标反射或散射来检测和识别目标。目标反射越强,雷达接收器返回的回波就越大,从而获得更高的信噪比(SNR)和更高的检测可能性。在雷达系统中,从目标反射的能量由雷达横截面(RCS)决定,定义为sigma代表RCS,R是雷达与目标之间的距离,Es是从目标反射的信号的场强,以及Ei是入射到目标上的信号的场强。通常,目标向各个方向散射能量,RCS是入射角,散射角和信号频率的函数。RCS 取决于目标的形状和构建目标的材料。用于RCS的常用单位包括平方米或dBsm。

珞瑜的博客 3085

C#LeetCode刷题-栈

栈篇 # 题名 刷题 通过率 难度 20 有效的括号 C#LeetCode刷题之#20-有效的括号(Valid Parentheses) 33.0% 简单 42 接雨水 35.6% 困难 71 简化路径 27.0% ...

比特飞 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

c语言算术表达式求值,《数据结构课程设计-算术表达式求值的实现》.doc

课 程 设 计 报 告课程设计名称:数据结构课程设计课程设计题目:算术表达式求值的实现院(系):*****专 业:*****班 级:*****学 号:*****姓 名:*****指导教师:*****目 录1 课程设计介绍11.1 课程设计内容11.2 课程设计要求12 课程设计原理22.1 课设题目粗略分析22.2 原理图介绍22.2.1 功能模块图22.2.2 ...

weixin_29028611的博客 1361

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Python:f-string 进阶与表达式求值机制

f-string 结合了表达式求值、类型控制与高性能,是 Python 现代字符串格式化的核心方式。自 Python 3.6 起引入的 f-string(格式化字符串字面量),被认为是字符串格式化的终极形态。掌握 f-string,不仅能写出更优雅的输出逻辑,更能理解 Python 格式化系统的底层统一原理。Python 支持在 f-string 中嵌套另一个 f-string,但要注意引号配对。在 f-string 中可直接使用条件表达式(if-else)。

qq_41176800的博客 754

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【代码随想录】刷题记录(33)-逆波兰表达式求值

输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]先给输入的元素分类,一般是一类推入栈等待消去,另一类把储存的元素推出消去!而本题中,就是把数字存入栈,碰到符号就把栈里面相邻的两个元素推出做加减乘除。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。每个运算对象可以是整数,也可以是另一个逆波兰表达式。我的作答:栈很适合用于消去相邻的某种关联的元素诶!根据 逆波兰表示法,求表达式的值。

Aerochacha的博客 297

中缀表达式求值总结(又codevs2178)

中缀表达式的题目困扰了我两三年,都没去写过。。这两天看到2005年提高组的T3要用到所以心血来潮写了一下。   表达式求值借助基本结构应该不用说了是栈,不管手写还是STL都没有太大关系。而中缀表达式最难控制的地方是优先级,算上+-*/^()一共有四个优先级【+-,*/,, ^()】(后面会提到一个三级的字符“负号”,这是预留空位)。   下面对一个例子进行分析:2*3+4...

dbsaf26628的专栏 189

C++表达式求值详解

本篇文章就到这里了,希望能够给你带来帮助。

2501_94114815的博客 324

设计一个程序,演示用算符优先法对算术表达式求值的过程。利用算符优先关系,实现对算术四则混合运算表达式的求值。

一、实验目的 1.掌握栈的存储表示和实现 2.掌握栈的基本操作实现。 3.掌握栈在解决实际问题中的应用。 二、实验要求 问题描述:设计一个程序,演示用算符优先法对算术表达式求值的过程。利用算符优先关系,实现对算术四则混合运算表达式的求值。 (1)输入的形式:表达式,例如2*(3+4)# 包含的运算符只能有’+’ 、’-’ 、’’ 、’/’ 、’(’、 ‘)’,“#”代表输入结束符; (2)输出的形式:运算结果,例如2(3+4)=14; (3)程序所能达到的功能:对表达式求值并输出。 三、解题参考思路 为了实

X131644的博客 5847

简单计算器(浙大复试题)表达式求值

读入一个只包含 +、-、*、/ 的非负整数计算表达式,计算该表达式的值。

qq_42531271的博客 414

python输入数学表达式并求值_用Python3实现表达式求值

一、题目描述请用 python3编写一个计算器的控制台程序,支持加减乘除、乘方、括号、小数点,运算符优先级为括号>乘方>乘除>加减,同级别运算按照从左向右的顺序计算。二、输入描述数字包括"0123456789",小数点为".",运算符包括:加("+")、减("-")、乘("*")、除("/")、乘方("^",注:不是**!)、括号("()")需要从命令行参数读入输入,例如提交文件为 main.py...

weixin_39756273的博客 6447

表达式求值

表达式求值问题 ①问题描述 表达式是数据运算的基本形式。人们的书写习惯是中缀式,如:11+22*(7-4)/3。中缀式的计算按运算符的优先级及括号优先的原则,相同级别从左到右进行计算。表达式还有后缀式(如:22 7 4 - * 3 / 11 +)和前缀式(如:+ 11 / * 22 – 7 4 3)。后缀表达式和前缀表达式中没有括号,给计算带来方便。如后缀式计算时按运算符出现的先后进行计...

weixin_30493401的博客 351
上一篇: #32-【并查集】亲戚
下一篇: 【游戏】合到十源码
2017gdgzoi999
博客等级 码龄9年 64粉丝 236原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值