栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1686 Lazy Math Instructor

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1686 Lazy Math Instructor

#include<cstdio>#include<cstring>#include<algorithm>#include<cctype>using namespace std;const int N=1000;char op[8]= {'+','-','*','/','(',')',''};char cp[7][7]={    {'>','>','<','<','<','>','>'},    {'>','>','<','<','<','>','>'},    {'>','>','>','>','<','>','>'},    {'>','>','>','>','<','>','>'},    {'<','<','<','<','<','=','@'},    {'>','>','>','>','@','>','>'},    {'<','<','<','<','<','@','='}};char st_char[N];int st_int[N],top_char,top_int;int cal(int a,char op,int b){    switch(op)    {    case '+':        return a+b;        break;    case '-':        return a-b;        break;    case '*':        return a*b;        break;    case '/':        return a/b;        break;    default:        while(1)puts("You Will Output Limit Exceededn");    }}char comp(char a,char b){    int i,j;    for(i=0; i<7; i++)        if(a==op[i]) break;    for(j=0; j<7; j++)        if(b==op[j]) break;    return cp[i][j];}char comp10(char x,char ch){     if(x=='+'||x=='-')        if(ch=='+'||ch=='-'||ch==')'||ch=='') return ('>');        else return ('<');     if(x=='*'||x=='/')        if(ch=='(') return('<');        else return('>');     if(x=='(')        if(ch==')') return('=');        else return('<');     if(x==')')        if(ch!='(') return('>');     if(x=='')        if(ch=='') return('=');        else return('<');}int cac(char s[]){    top_char=top_int=0;    st_char[top_char++]='';    int i=0,v,a,b;    char ch;    bool flag=true;    while(s[i]!=''||st_char[top_char-1]!='')    {        if(s[i]==' '||s[i]=='t')        { i++; continue;        }        else if(isdigit(s[i]))        { v=0; while(isdigit(s[i])) {     v=v*10+s[i]-'0';     i++; } st_int[top_int++]=v;        }        else if(isalpha(s[i]))        { st_int[top_int++]=(int)s[i++];        }        else        { switch(comp(st_char[top_char-1],s[i])) { case '<':     st_char[top_char++]=s[i++];     break; case '=':     top_char--;     i++;     break; case '>':     ch=st_char[--top_char];     b=st_int[--top_int];     a=st_int[--top_int];     v=cal(a,ch,b);     st_int[top_int++]=v;     break; }        }    }    return st_int[0];}int main(){    int T;    for(scanf("%d ",&T); T; T--)    {        char s1[1000],s2[1000];        gets(s1);        gets(s2);        if(cac(s1)==cac(s2)) printf("YESn");        else printf("NOn");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号