贤鱼的刷题日常--P1981 [NOIP2013 普及组] 表达式求值

简介: 🍀学习表达式求值题目
🏆今日学习目标:
🍀学习表达式求值题目
✅创作者:贤鱼
⏰预计时间:25分钟

请添加图片描述

@TOC

题目

给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。
输入格式
一行,为需要你计算的表达式,表达式中只包含数字、加法运算符 “+” 和乘法运算符 “×”,且没有括号,所有参与运算的数字均为 0 到 2^31 之间的整数。
输入数据保证这一行只有 0-9、+、× 这 12种字符。
输出格式
一个整数,表示这个表达式的值。
注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。
输入输出样例
输入 #1复制
1+1*3+4
输出 #1复制
8
输入 #2复制
1+1234567890*1
输出 #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<cmath>
#include<cstdio>
#include<iostream>
#include<cstring>
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<=len;i++){
        if(isdigit(s[i])){//这个的意思是判断是不是数字
            a=a*10+s[i]-'0';//储存数字
        }else{
            nn++;
            num[nn]=a;
            f++;
            fh[f]=s[i];//这里放入数字和符号,记得数字清零
            a=0;
        }
    }
    for(int i=1;i<=f;i++){
        if(fh[i]=='*'){    //如果是*,就按照上文所说处理
             num[i+1]=num[i]*num[i+1];
             num[i]=0;
             num[i+1]%=10000;//每一次都摸一下

        }
    }
    
    for(int i=1;i<=nn;i++){
        ans+=num[i];
    }
    cout<<ans%10000;//输出的时候摸一下,前导零自动就排除掉了,不需要单独处理
}

🏆结束语:如果有需要可以订阅一下专栏,持续更新内容!

请添加图片描述

相关文章
|
监控 安全 测试技术
强化您的应用安全,从app加固开始
作为iOS技术博主,您对应用程序安全性的重要性应该有深刻的认识。随着移动应用市场的不断扩大,应用程序面临的安全威胁也日益增多。因此,采取有效的措施来加固应用程序,保护用户数据和知识产权变得至关重要。在本文中,我们将深入探讨如何通过app加固来提升应用程序的安全性,以及如何应对潜在的安全威胁。
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
737 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
负载均衡
keepalived基础介绍
Keepalived是一个基于VRRP协议的软件,用于实现高可用的IPVS负载均衡服务,具备故障转移、健康检查和邮件通知等功能。
371 2
keepalived基础介绍
|
机器学习/深度学习 算法 自动驾驶
计算机视觉入门
计算机视觉入门
|
数据安全/隐私保护
BUU [HCTF 2018]admin
BUU [HCTF 2018]admin
120 0
|
前端开发 JavaScript Java
毕业设计|SpringBoot Vue3小说阅读网站系统
毕业设计|SpringBoot Vue3小说阅读网站系统
444 2
|
JSON 算法 安全
SpringBoot从入门到精通(三十四)如何集成JWT实现Token验证
近年来,随着前后端分离、微服务等架构的兴起,传统的cookie+session身份验证模式已经逐渐被基于Token的身份验证模式取代。接下来介绍如何在Spring Boot项目中集成JWT实现Token验证。
SpringBoot从入门到精通(三十四)如何集成JWT实现Token验证
|
人工智能 前端开发 JavaScript
小说网站|基于Springboot+Vue实现在线小说阅读网站
本项目基于Springboot+Vue开发实现了一个在线小说阅读网站平台。系统设计用户主要有三类:读者、作者、管理员。用户注册时以读者身分进入平台,可以自己修改身分为作者。读者登录系统可以查看并在线阅读发布的小说章节内容,并在线评论、点赞和举报处理,同时可以查看平台发布的小说新闻和平台公告新闻。。作者登录平台除了可以查看小说外,还可以在线发布小说和内容,进行在线创作。所有的信息由平台管理员进行管理操作,包含人员管理、小说管理、章节管理、类型管理、举报管理、评论管理、新闻管理、系统管理(轮播图管理、超链接管理)等。
512 1
|
搜索推荐 算法 前端开发
基于用户特征的个性化网络小说推荐系统的设计与实现
基于用户特征的个性化网络小说推荐系统的设计与实现
384 0
云电脑国外可以使用吗
云电脑泰国可以使用吗 数据否稳定