zoukankan      html  css  js  c++  java
  • 表达式求值

    表达式求值

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
    描写叙述

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

    如果表达式能够简单定义为:

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

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

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

    4.假设 和  表达式,则 函数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<stdio.h>
    #include<string.h>
    int main(void)
    {
    	int len,zhi;
    	int N;
    	scanf("%d",&N);
    	while(N--)
    	{
    		int sum,i=0,j=0,k=0;
    		int num[200];
    	    int s[200];
    	    char a[300];
    		scanf("%s",a);
    	    len=strlen(a);
    	    while(i<len)
    		{
    			if(a[i]=='m')
    			{
    				if(a[i+1]=='i')
    					num[j++]=1;
    				if(a[i+1]=='a')
    					num[j++]=2;
    				    i=i+4;
    			}
    			else if(a[i]=='a')
    			{
    				num[j++]=3;
    				i=i+4;
    			}
    			else if(a[i]>='0'&&a[i]<='9')
    			{
    				sum=0;
    				while(a[i]>='0'&&a[i]<='9')
    				{
    					sum=sum*10+a[i]-'0';
    					i++;
    				}
    				s[k++]=sum;
    			}
    			else if(a[i]==')')
    			{
    				zhi=num[--j];
    				k--;
    				if(zhi==1)
    					s[k-1]=s[k]>s[k-1]?s[k-1]:s[k];
    				if(zhi==2)
    					s[k-1]=s[k]>s[k-1]?

    s[k]:s[k-1]; if(zhi==3) s[k-1]=s[k]+s[k-1];    i++; } else i++; } printf("%d ",s[0]); } return 0; }

  • 相关阅读:
    PHP获取时间or戳?
    滤镜灰CSS
    css3 文字渐变色
    除指定区域外点击任何地方隐藏DIV
    margin-top bug 处理方案
    基于Bootstrap好用的瀑布流
    初始数据库
    协程
    粘包及解决方案
    log日志的三种方式
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6850452.html
Copyright © 2011-2022 走看看