别样表达式求值

TCL脚本语言深度解析:从核心语法到EDA与网络测试实战应用 在软件开发和自动化领域,脚本语言扮演着连接不同工具与系统的关键角色,其核心价值在于提升效率与实现流程自动化。TCL(Tool Command Language)作为一种解释型、可嵌入的脚本语言,以其“一切皆命令”的极简设计哲学和强大的字符串处理能力著称。其原理在于通过统一的命令语法和灵活的变量、命令、反斜杠替换机制,实现对底层应用程序的精确控制和复杂逻辑编排。这使得TCL在需要高度可靠性和深度集成的工业级场景中展现出独特的技术价值,例如作为电子设计自动化(EDA)工具和网络测试仪表的标配扩展语言。在应用场景 阅读详情

表达式求值

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=305
描述

Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等。经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。

假设表达式可以简单定义为:

1. 一个正的十进制数 x 是一个表达式。

2. 如果 x 和 y 是 表达式,则 函数min(x,y )也是表达式,其值为x,y 中的最小数。

3. 如果 x 和 y 是 表达式,则 函数max(x,y )也是表达式,其值为x,y 中的最大数。

4.如果 x 和 y 是 表达式,则 函数add(x,y )也是表达式,其值为x,y 之和。

例如, 表达式 max(add(1,2),7) 的值为 7。

请你编写程序,对于给定的一组表达式,帮助 Dr.Kong 算出正确答案,以便校对卡多计算的正误。

输入
第一行: N 表示要计算的表达式个数 (1≤ N ≤ 10) 
接下来有N行, 每行是一个字符串,表示待求值的表达式
(表达式中不会有多余的空格,每行不超过300个字符,表达式中出现的十进制数都不
超过1000。)
输出
输出有N行,每一行对应一个表达式的值。
样例输入
3
add(1,2) 
max(1,999) 
add(min(1,1000),add(100,99)) 
样例输出
3
999
200
AC 代码:
#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <stack>
#include<string.h>
using namespace std;
int main()
{
    
    char ch[1002];
    int M,a,b,R;
    cin>>M;
    while(M--)
    {
           char str[4];  // 用来提取表达式中的数据 ;
           stack <char> strStack; // 用来存放字符 
           stack <int> intStack;   // 用来存放数据(整型) 
           memset(ch,'\0',sizeof(ch));
           cin>>ch; // 输入表达式的值;
           for(int i=0;i<(int)strlen(ch);i++) 
           {
			      memset(str,'\0',sizeof(str));
                   if(ch[i]=='a') { strStack.push('a'); i+=2;continue;}
                   if(ch[i]=='m'&&ch[i+1]=='i') {strStack.push('l'); i+=2; continue;}
                   if(ch[i]=='m'&&ch[i+1]=='a') {strStack.push('b'); i+=2;continue;}
                   if(ch[i]>='0'&&ch[i]<='9')
                   {
                                 for(int j=i;;j++)
                                 {
                                         if(ch[j]<'0'||ch[j]>'9') { intStack.push(atoi(str)); i=j-1;break;}  // 数字遍历完了,回到初始,继续以相同的规则遍历;
                                         else  str[j-i]=ch[j];
                                         } 
								 continue;
                                             }
                   if(ch[i]==',') continue;
				   if(ch[i]=='(') {strStack.push('(');continue;}
                   if(ch[i]==')') 
                   {
                                                   
                                                    strStack.pop(); 
                                                    a=intStack.top();
													intStack.pop();
                                                    b=intStack.top(); // 取出两个操作数; 
                                                    intStack.pop();
                                                    switch(strStack.top())
                                                    {
                                                             case 'a': intStack.push(a+b); break;
                                                             case 'l': intStack.push(a>b?b:a);break;
                                                             case 'b': intStack.push(a>b?a:b);break;
                                                      }
                                                  strStack.pop();
												  continue;
                                                     }
                   }
		    R=intStack.top();
                   cout<<R<<endl;
              }
    //system("PAUSE");
    return 0;
}


Oracle EBS R12 AP模块发票导入接口实战:从SQL插入到API调用的完整流程 本文详细解析了Oracle EBS R12 AP模块发票导入接口的完整流程,从SQL插入到API调用的实战技巧。涵盖接口表设计、数据验证、双通道导入机制及错误诊断,特别分享官方文档未提及的高阶优化方案,助力企业实现财务数字化转型。 阅读详情

相关推荐

告别以太网瓶颈:手把手教你为AI训练集群搭建InfiniBand网络(以NVIDIA DGX A100/H100为例)

本文详细指导如何为AI训练集群搭建InfiniBand网络,解决以太网瓶颈问题,特别针对NVIDIA DGX A100/H100系统。通过硬件选型、网络架构设计和性能调优,显著提升多机多卡训练效率,适用于大规模模型训练场景。

weixin_30336061的博客 310

MYOJ 的来源和现状

写在前面 首先要特别感谢张老师(zhblue)开源的 HustOJ,还要感谢目前正在使用 MYOJ 的所有用户以及免费维护人员。 先来一波广告吧,MYOJ 的 IP 地址是 http://47.110.135.197,暂时没有对应的域名。 MYOJ 来源 2018年的时候,由于小朋友开始上幼儿园。一个大锅就从天而降,那就是小朋友的读书规划。考虑到自己是计算机专业硕士毕业和自己的出身,当然就想到要将小朋友送到著名 985 高校。 以前自己读书的时候,也曾经是一个竞赛选手,虽然不成功。所以仔细研究了目前存在的五

努力中的老周的专栏 1551

Android汽车服务篇(一) CarService

本文主要说明了CarService这一系统服务的启动流程,以及一些关键成员的创建和初始化流程.同时简单介绍了一下客户端是如何获取和使用CarService对象, 如上文介绍的, CarService对象只是获取各个Manager的媒介,它本身并不承担管理传感器.空调等具体的任务.如果要获取车辆的相关信息,如车速, 车内空调温度,诊断信息, 或对车辆进行相关的控制,如升高和降低空调温度,控制座椅和车窗, 调节音量等,就要通过具体的Manager中的API和对应的服务来实现了.

u012514113的专栏 8146

信息学奥赛/MYOJ

个人较推荐信息学奥赛;MYOJbug较多,Poki - 免费在线小游戏 - 马上玩!信息学奥赛一本通(C++版)在线评测系统。只要思想不滑坡,bug总比困难多。信息学奥赛网址为“​​​​​。

qsw1234567857887的博客 1308

【两方演化博弈代码复现】:双方演化博弈的原理、概率博弈仿真、相位图、单个参数灵敏度演化

演化博弈论是研究个体在特定环境中如何通过策略选择与其他个体进行互动的学科。这一理论在生物学、经济学和社会科学等多个领域都有广泛应用。本文将深入探讨双方演化博弈的原理及其过程,并解读一段 MATLAB 代码,展示如何模拟这一过程。

当回首往事的时候,不会因虚度年华而悔恨,也不会因碌碌无为而羞愧。 6198

Fortify SCA 24.4 最新可用版

Fortify Static Code Analyzer(Fortify SCA) 是一款由 Micro Focus(原惠普旗下)开发的 静态应用安全测试(SAST)工具,专注于在软件开发早期通过分析源代码或编译后的二进制文件,识别潜在的安全漏洞、代码缺陷和合规性问题。以下是其核心特点与功能:核心功能 静态代码分析 在不运行程序的情况下,通过语法、语义分析检测代码中的安全漏洞(如 SQL 注入、跨站脚本(XSS)、缓冲区溢出等)和代码质量问题。

棉花糖的博客 3181

MYOJ 增加新功能——视频题解,文字题解和参考代码

在 MYOJ 正式增加以下三项新功能。 1、视频题解支持。目前视频支持 B 站视频和本地视频。 2、题解功能。 3、AC参考代码功能。 视频题解功能 目前视频支持 B 站视频和本地视频。B 站视频已经调试完成,本地视频暂时没有实现上传功能。 实现机制 网页内嵌视频播放功能 + 数据库支持。 增加 B 站视频 获取 B 站视频连接 打开 B 站,找到对应的视频。视频下方有一个分享按钮,如下图。 点击分享,将出现下面的对话框。 选择嵌入代码,点击复制。可以得到对应的视频地址。例如样例视频地址为: <

努力中的老周的专栏 867

【SAM2系列】windows单GPU复现时的bug解决记录

windows运行sam2,就感觉在开一艘破破烂烂的船,每走一步报一个错,bug源源不断的冒出来😭😭😭😭😭。

weixin_43571113的博客 1317

MYOJ啊!

别的网站如果朴素,第1种是好到天了,第2种说白了就是没钱,没资源,没具体名称,烂到只有数字网址。如果希望学生能看出错对比,编辑db_info.inc.php,设置 $OJ_SHOW_DIFF=true;因为它不属于您,或者管理员设定系统状态为不显示此类信息。我可以很负责任的说:信息学奥赛如果是人,MYOJ就是他的儿子。如果你是管理员,请给自己增加source_browser权限,然后重新登录。例2:道歉,没注意到由于系统备份,导致硬盘给些满了。在信息学奥赛/MYOJ中我有讲过,就不写了。

qsw1234567857887的博客 371

零基础玩转STM32CubeIDE LL库:5分钟搞定串口通信(附完整代码)

本文为零基础开发者提供了一份STM32CubeIDE LL库串口通信的快速实战指南。通过CubeMX配置、LL库核心API详解,以及中断接收与环形缓冲区的完整代码实现,帮助读者在5分钟内搭建稳定可靠的串口收发框架,解决从HAL切换到LL库的常见困惑,提升嵌入式开发效率。

weixin_29159441的博客 306

深度学习图神经网络 (GNN) —— 处理图结构数据(六十九)

本文系统介绍了图神经网络(GNN)的核心概念、主流模型及其应用。主要内容包括: GNN基础:阐述了图结构数据的特性(节点数不定、连接不规则),以及GNN相比CNN/RNN的优势在于处理非欧式空间的图数据。 核心机制:重点讲解了消息传递框架(MPNN),通过聚合邻居信息迭代更新节点表示,并分析了GCN的归一化邻接矩阵计算和GAT的注意力权重机制。 典型模型: GCN:基于归一化邻接矩阵的特征传播 GAT:引入注意力机制区分邻居重要性 GraphSAGE:通过采样解决大图扩展性问题 GIN:理论表达能力最强的图

hello.reader 300

nyoj305

题目描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等。经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。 假设表达式可以简单定义为: 1. 一个正的十进制数 x 是一个表达式。 2. 如果 x 和 y 是 表达式,则 函数min(x

俱往矣 439

逻辑电平(TTL/CMOS/LVDS/LVPECL/CML)

逻辑电平介绍 TTL------晶体管-晶体管逻辑门(Transistor-Transistor Logic gate) TTL采用5V电源

sinat_15677011的博客 2万+

在Odroid Go上实现Micro Lisp:嵌入式环境中的Lisp解释器设计与应用

Lisp作为一门历史悠久的编程语言,以其‘代码即数据’的核心哲学和强大的元编程能力著称。其独特的S-表达式语法和同像性,使得语言处理器(如解释器)的实现相对简洁。在嵌入式系统开发中,资源受限的微控制器环境对运行时提出了严苛要求,这促使开发者设计精简的Lisp实现,以在有限内存中构建可交互的软件世界。这类微型解释器通常涉及高效的内存模型设计、标记-清除垃圾回收机制以及硬件抽象层的绑定,其技术价值在于将通用计算概念引入专用硬件,拓展了设备的可编程性与创造性。具体到应用场景,例如在Odroid Go这类集成屏幕与

weixin_30550081的博客 371

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python代码类型与exec函数深度解析

本文摘要主要探讨Python中exec()函数的使用方法及其与eval()的区别。exec()用于执行语句块,而eval()仅用于表达式求值。文章详细说明了exec()的参数:第一个是字符串格式的语句,后两个可选参数分别指定全局和局部变量字典。特别指出,当全局字典不含'builtins'时,会自动添加内置模块引用;若要限制使用内置函数,可显式设置为空字典。最后通过多个代码示例,展示了不同参数配置下exec()的执行效果和变量作用域规则。

不忘初心,方得始终。不管前路如何艰难,只要心中有梦想,就有力量。 117

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

第21节 逻辑表达式

一.逻辑运算概念 逻辑运算是将多个判断组合起来,形成复杂的条件 x是非负数 !x<0 收入在2000到3500元之间 s>=2000 && s<3500 温度低于-15度或高于35度 t<=-15||t>=35 y年是闰年 (y%4==0 && y%100!=0)||y%400==0 二.关于逻辑型数据 1.逻辑值用数值1代表真,用数值0代表假; 2.可与数值型数据进行算

m0_51439429的博客 778

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C++学习笔记8 控制流与错误处理

在多线程程序中,调用std::exit()可能会导致程序崩溃(因为调用std::exit()的线程将清理可能仍然被其他线程访问的静态对象)。由于这个原因,C++引入了另一对函数,它们的工作方式类似于std::exit()和std::atexit(),称为std::quick_exit()和std:∶at_quick_exit()。在等价的while循环中,可以看到初始化语句位于等价的代码块内,当整体结束时,初始化语句中定义的变量超出作用域。如果找不到匹配的值并且存在默认标签,则改为执行默认标签之后的语句。

Disthinker的博客 1011

计算机构造与解释Python版读后感

计算机构造与解释Python版读后感 是上个月看完 Structure and Interpretation of Computer Programs的Python版本。前天又花了一天时间回顾。真是大开眼界,给你一种完全不同的视角看待程序语言,正如书中所言的magic,art,比如我们都知道program是由procedure和data构成,但我从没想过procedure就是data,data就是procedure。就Python入门而言,对一个C语言程序经验者,这本书非常难懂,难懂在于它的讲述方式跟传统的

watershed1993的博客 839

编程日志(C++)

这是我去年以及近来学习C++的一些笔记,里面有许多问题是不太合理的,有些是我现在已经搞清楚的,但还是以原来的版本贴在我的BLOG上,以后哪一天再来看的时候,也许会有别样的感觉:2004.4.1小弟初学C++,有些问题不太明白,(1)有语句为a+=b;以及a=a+b,书上说前者比后者执行效率高,为什么?(如果可以从a,b,+在内存中的存放地,调用,以及CPU具体如何执行该命令的角度说说最好^

Alex的学习之路 2192

表达式求值(sscanf用法)(stack练习)(第四届河南省大学生程序设计竞赛)

题目描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等。经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。 假设表达式可以简单定义为: 一个正的十进制数 x 是一个表达式。 如果 x 和 y 是 表达式,则 函数min(x,y )也是表达式,其值为x,y 中的最小数。 如果 x 和 y 是 表达式,则 函数max(x,y )也是表达式,其值为x

lymww的博客 448

表达式求值

Problem Description Dr.Kong设计的机器人卡多掌握了加减法运算以后,近期又学会了一些简单的函数求值,比方,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等。经过训练。Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。 如果表达式能够简单定义为: 1. 一个正的十进制数 x 是一个表达式。 2. 假设 x 和 ...

weixin_33910137的博客 205

PTA 7-3 表达式求值_1

7-3 表达式求值_1 在一个表达式中,只有“(”,“)”,“0-9”,“+”,“-”,“*”,“/”,“^”,请求出表达式的值。(“/”用整数除法)。 输入格式: 共1 行,为一个算式。 (算式长度

ah23333333的博客 2218

7-3 表达式求值_1 (20分) 简单代码

题目描述 在一个表达式中,只有“(”,“)”,“0-9”,“+”,“-”,“*”,“/”,“^”,请求出表达式的值。(“/”用整数除法)。 输入格式: 共1 行,为一个算式。 (算式长度<=30 其中所有数据在 0~2^31-1的范围内)。 输出格式: 共一行,为表达式的值。 输入样例: 在这里给出一组输入。例如: 1+(3+2)(7^2+69)/(2) 输出样例: 在这里给出相应的输出。例如: 258 基本思路: 读取完字符串之后,扫描一遍,扫描一遍后,运算也同时结束,过程中将中缀表达式转化成后缀

weixin_45543674的博客 1万+

MYOJ_7456:输出邻接点的数量(图论概念及基础运用)

先申请新节点,先把to值设成v(具体参照代码),再把下一个结点的地址设成第u个头结点,最后第u个头结点地址变为np,完成。第一行:两个整数n m,空格分开,n表示顶点数,m表示边数(1<=n<=100, 1<=m<=1000)进行q次询问,每次询问一个顶点的邻接点的数量。链式前向星是邻接表的一种,类似于链式存储结构,所以我们可以声明结点池。以下m行,每行两个整数f,t,表明从顶点f到顶点t有一条边。以下q行,每行一个整数v,表示要询问顶点v的邻接点。顶点编号为1,2,...,n。链式前向星必须插入,而且。

rstyduifudg的博客 736

MYOJ_1214:(洛谷P1015)[NOIP 1999 普及组]回文数(高精度计算与数制结合运用)

写一个程序,给定一个 N(2≤N≤10 或 N=16)进制数 M(100 位之内),求最少经过几步可以得到回文数。如果在 30 步以内(包含 30 步)不可能得到回文数,则输出。例如:给定一个十进制数 56,将 56 加 65(即把 56 从右向左读),得到 121 是一个回文数。在这里的一步是指进行了一次 N 进制的加法,上例最少用了 4 步得到回文数 4884。若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。如果能在 30 步以内得到回文数,输出格式形如。

rstyduifudg的博客 569

P1055 [NOIP2008 普及组] ISBN 号码

每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 99 位数字、11 位识别码和 33 位分隔符,其规定格式如 x-xxx-xxxxx-x,其中符号 - 就是分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,...

wenjinjie1的博客 643
上一篇: C# 中排序函数的总结
下一篇: 中缀式与后缀式的转化 郁闷的C小加(一)
chwei_cson
博客等级 码龄15年 62粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值