南阳理工-35-程序员宅基地

技术标签: php  

http://acm.nyist.net/JudgeOnline/problem.php?pid=35

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<algorithm>

using namespace std;
const int maxn=10007;
char a[maxn], b[maxn];
stack<char> S;
stack<double> S1;

int Priority(char ch)
{
    int i;
    switch(ch)
    {
    case '+':
    case '-':
        i=1;
        break;
    case '*':
    case '/':
        i=2;
        break;
    default :
        i=-1;
        break;
    }
    return i;
}
///中缀表达式转后缀表达式
void ToPoland()
{
    int i=0, j=0;
    int len=strlen(a);
    S.push('@');
    while(i < len-1)
    {
        if(a[i]=='(')
        {
            S.push(a[i]);
            i++;
        }
        else if(a[i]==')')
        {
            while(S.top()!='(')
            {
                b[j++]=S.top();
                b[j++]=' ';
                S.pop();
            }
            S.pop();
            i++;
        }
        else if(a[i]=='+' || a[i]=='-' || a[i]=='*' || a[i]=='/')
        {
            while(Priority(a[i]) <= Priority(S.top()))
            {
                b[j++]=S.top();
                b[j++]=' ';
                S.pop();
            }
            S.push(a[i]);
            i++;
        }
        else
        {
            while((a[i]>='0'&&a[i]<='9') || a[i]=='.')
            {
                b[j++]=a[i++];
            }
            b[j++]=' ';
        }
    }
    while(S.top()!='@')
    {
        b[j++]=S.top();
        b[j++]=' ';
        S.pop();
    }
    S.pop();
}
///求逆波兰表达式的值
double Count_Poland()
{
    double p, q, u, v;
    for(int i=0; b[i]; i++)
    {
        p=q=0;
        if((b[i]>='0'&&b[i]<='9') || b[i]=='.')
        {
            while((b[i]>='0'&&b[i]<='9') || b[i]=='.')
            {
                if(b[i]=='.')
                {
                    i++;
                    double x=1;
                    while(b[i]>='0'&&b[i]<='9')
                    {
                        x*=0.1;
                        q=q+(b[i]-'0')*x;
                        i++;
                    }
                }
                else
                {
                    p=p*10+(b[i]-'0');
                    i++;
                }
            }
            S1.push(p+q);
        }
        else
        {
            if(b[i]=='+')
            {
                u=S1.top();
                S1.pop();
                v=S1.top();
                S1.pop();
                S1.push(v+u);
            }
            else if(b[i]=='-')
            {
                u=S1.top();
                S1.pop();
                v=S1.top();
                S1.pop();
                S1.push(v-u);
            }
            else if(b[i]=='*')
            {
                u=S1.top();
                S1.pop();
                v=S1.top();
                S1.pop();
                S1.push(v*u);
            }
            else if(b[i]=='/')
            {
                u=S1.top();
                S1.pop();
                v=S1.top();
                S1.pop();
                S1.push(v/u);
            }
        }
    }
    return S1.top();
}
int main()
{
    int n;
    scanf("%d", &n);

    while(n--)
    {
        scanf("%s", a);
        ToPoland();
        printf("%.2f\n", Count_Poland());
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/w-y-1/p/6652512.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30279315/article/details/95873045

智能推荐

Added a key not lexically larger than previous.-程序员宅基地

文章浏览阅读3.2k次。跑批问题:Caused by: java.io.IOException: Added a key not lexically larger than previous. Current cell = 10000000414/aml_custinfo:address/1594509705240/Put/vlen=42/seqid=0, lastCell = 10000000414/aml_custinfo:watchcustflag/1594509705240/Put/vlen=1/seqid=0报错_added a key not lexically larger than previous

查看linux服务器 频率,LInux查看服务器硬件信息-程序员宅基地

文章浏览阅读378次。Hi,大家好;今天是双12,大家剁手了没。今天给大家带来的是《Linux查看服务器上的硬件信息》本篇文章的示例全部是在服务器(Inspur SA5112M4)上实现的,有些命令在虚拟机上达不到效果查看服务器型号、序列号root@zhangdaifu# dmidecode -s system-serial-numberroot@zhangdaifu# dmidecode -t system | gr..._crystal beach /dma

MATLAB一元函数与二元函数求极小值_matlab中求解2变量函数的极小值-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏6次。MATLAB一元函数与二元函数求极小值_matlab中求解2变量函数的极小值

MySQL学习_mysql possible key有值但是key为null-程序员宅基地

文章浏览阅读734次。Mysql的三大范式,存储引擎、索引、sql的执行计划、count()计数的区别,事务,简单sql调优,索引失效场景、jdbcTemplate查询类获取时间没有时分秒、连接mysql时区配置,jaskson转json时区配置..._mysql possible key有值但是key为null

Java 微服务之 SpringCloud快速入门day01 (四)Eureka注册中心高级部分(集群)(高可用)-程序员宅基地

文章浏览阅读606次,点赞30次,收藏13次。分享一份自己整理好的Java面试手册,还有一些面试题pdf。

基于深度学习的人脸检测与静默活体检测——C++实现_人脸识别c++-程序员宅基地

文章浏览阅读7.5k次,点赞2次,收藏38次。C++实现工业级静默活体检测,判别机器前出现的人脸是真实还是伪造。用于判别虚假人脸。_人脸识别c++

随便推点

【数据结构】八大排序之快速排序算法-程序员宅基地

文章浏览阅读1.2k次,点赞25次,收藏29次。数据结构快速排序详解.内容包括:快排的简介及思想,快排代码实现的三种方式,快排的时间复杂度分析,快排的优化,快排的非递归实现,快排的三路划分算法.

PHP判断是否手机端或PC端访问_php判断手否电脑端-程序员宅基地

文章浏览阅读461次。1.在PublicController控制器中写好判断手机端方法。<?phpnamespace Home\Controller;use Think\Controller;class PublicController extends Controller { //判断是否是手机端还是电脑端 function isMobile(){ // 如果有Ht_php判断手否电脑端</div>

python将列表元素连接_python中列表元素连接方法join用法实例-程序员宅基地

文章浏览阅读4.9k次。本文实例讲述了python中列表元素连接方法join用法。分享给大家供大家参考。具体分析如下:创建列表:>>> music = ["Abba","Rolling Stones","Black Sabbath","Metallica"]>>> print music输出:['Abba', 'Rolling Stones', 'Black Sabbath', 'Me..._python将list使用/n连接起来

HTML表格标签的基础用法与实例_html表格例子-程序员宅基地

文章浏览阅读561次。文章目录一、表格的作用二、表格骨架标签三、表格的样式四、表格其他标签五、合并单元格六、综合练习一、表格的作用在CSS还未普及的时候一些简单的网站使用表格布局是十分快捷的,开发人员只要按照需求,简单的对表格进行行列的拆分,就能实现设计页面的布局;随着互联网的发展以及CSS的普及用户的审美提升,表格布局渐渐淡出了布局手段行列。虽然表格现在不常用于布局,但是在展示一些后台数据的时候表格可以让数据显示的非常清晰规整,阅读起来十分方便,所以我们常用表格来展示一些数据。二、表格骨架标签<table>_html表格例子

[C方向]作业集锦_方向作业-程序员宅基地

文章浏览阅读284次。## 点击蓝色字体可跳转至相应文章,尔后文章待续... 1.New Code day11. 打印100~200 之间的素数 2. 输出乘法口诀表 3. 判断1000年---2000年之间的闰年 2.New Code day21.给定两个整形变量的值,将两个值的内容进行交换。 2.不允许创建临时变量,交换两个数的内容(附加题) 3.求10 个整数中最大值。 ..._方向作业

Kubernetes高可用集群二进制部署(四)部署kubectl和kube-controller-manager、kube-scheduler_kube-controller-manager 配置-程序员宅基地

文章浏览阅读1.1k次,点赞11次,收藏8次。scheduler通过 kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。 scheduler会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。 scheduler会依据下文的调度原则来做出调度选择。Controller Manager作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuot_kube-controller-manager 配置

推荐文章

热门文章

相关标签