hdu 1237 简单计算器(栈处理)
简单计算器
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 26553 Accepted Submission(s): 9626
0
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
using namespace std;
stack<double>num;
int main()
{
double n;
while(scanf("%lf", &n))
{
char c,k;
c = getchar();
if(c=='\n' && n==)
break;
num.push(n);
double m;
while()
{
cin>>k;
cin>>n;
if(k == '*')
{
m = num.top();
m*=n;
num.pop();
num.push(m);
}
else if(k == '/')
{
m = num.top();
m/=n;
num.pop();
num.push(m);
}
else if(k == '+')
{
num.push(n);
}
else if(k == '-')
{
num.push(-n);
}
if(getchar()=='\n') //本行输入完毕
break;
}
double sum = ;
while(!num.empty())
{
sum+=num.top();
num.pop(); //使用完后栈一定要清空
}
printf("%.2lf\n", sum); }
return ;
}
一般方法模拟
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main()
{
double a[];
double s, ss;
char k, f;
while (cin >> s)//题目要求多次输入
{
int flag = , i = ;
memset(a, , sizeof(a));
a[] = s;
f = getchar();
if (s == && f == '\n')
{
flag = ;
break;
}
while()//优先处理*、/运算
{
cin >> k;//输入运算符
cin >> ss;
if (k == '*')
a[i] = a[i] * ss;
if (k == '/')
a[i] = a[i] / ss;
if (k == '+')
a[++i] = ss;
if (k == '-')
a[++i] = (-)*ss;
if (getchar() == '\n')
break;
}
if (flag == )
{
double sum = ;
for (int j = ; j <= i; j++)
sum = sum + a[j];
printf("%.2lf\n", sum);
}
}
return ;
}
hdu 1237 简单计算器(栈处理)的更多相关文章
- HDU 1237 简单计算器 栈
额,题目是中文的,题意就不用说了= =都看懂喽.写个字符串先把这行计算式存进去,不过不能存一个算一个,因为考虑到乘除法比加减法优先的原则,如果是加号减号就先存着等待计算,如果是乘号除号就直接算出来值就 ...
- hdu 1237 简单计算器
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单计算器 Description 读入一个只包含 +, -, *, / 的非负整数计算表达式, ...
- HDU 1237 简单计算器(栈+stringstream)
提供几份代码,这题的输入可以用stringsteam处理,先处理乘除后处理加减,正常思路,但是后面统计加减法的时候,对栈的运用错了,我用的时候相当于给它多加了几个括号就错了. 正确的简单解法就是,加法 ...
- hdu 1237 简单计算器 (表达式求值)【stack】
<题目链接> 题目大意: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符, ...
- hdu-1237简单计算器(栈的运用)
http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单的栈的运用. 首先将数字和运算符分离,分别保存在两个数组中,然后按原来的式子的顺序,首先将第一个数和第 ...
- hiho #1332 : 简单计算器 栈+递归
#1332 : 简单计算器 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 编写一个程序可以完成基本的带括号的四则运算.其中除法(/)是整除,并且在负数除法时向0取整.( ...
- hdoj 1237 简单计算器
简单计算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- F - 简单计算器(栈)
F - 简单计算器 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descripti ...
- HDU1237 简单计算器 栈
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意:读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 题目分 ...
随机推荐
- Mysql处理海量数据时的一些优化查询速度方法(转)
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法. 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果whe ...
- Ajax步骤
var request = new XMLHttpRequest(); request.open("GET","get.php",ture); request. ...
- 【Web API2】ASP.NET Web API Security
实现安全的方式既可以是host提供,也可以框架提供. 1,HTTP Module 方式,工作在IIS上,所以web api要托管在IIS上才行.其作用于HTTP管道的最前端,所以这种方式影响的是全局, ...
- (转)15个非常棒的jQuery无限滚动插件【瀑布流效果】
原文地址:http://www.cnblogs.com/lyw0301/archive/2013/06/19/3145084.html 现在,最热门的网站分页趋势之一是jQuery的无限滚动(也即瀑布 ...
- MySQL性能调优与架构设计——第5章 备份与恢复
第5章 备份与恢复 前言 数据库的备份与恢复一直都是 DBA 工作中最为重要的部分之一,也是基本工作之一.任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍 MySQL数据库的备 ...
- spring的一些配置和重要的接口和类
spring的配置文件 通常是applicationContext.xml(具体的bean配置会在后面内容中详解) setter方法注入: <property name=“” value=“ja ...
- c# 简单委托例子
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- window中启动vs后鼠标无法移动
你停止wisptis.exe这个进程,在c:\Windows\System32下删除wispitis.exe就可以了!
- EF 配置实现建表与迁移
通过EF 作为操作数据库的工具有一段时间了,也做了几个相对不大的项目,慢慢的也对EF的使用摸索出来了一些规则,虽然说不是技术难点,但是,我说的是但是,能够提高我们开发效率的棉花糖有时我们还是必须要吃的 ...
- .Net Core 项目区域请求设置
.net core 和asp.net MVC区域请求有个区别,这里重点记录一下 asp.net MVC 区域请求直接是/区域名称/控制名称/方法名称,其他不需要设置任何东西,而Core 项目这样请求路 ...