九度OJ 1019:简单计算器 (基础题、DP)
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:6725
解决:2454
- 题目描述:
-
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
- 输入:
-
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
- 输出:
-
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
- 样例输入:
-
1 + 2 4 + 2 * 5 - 7 / 11 0
- 样例输出:
-
3.00 13.36
- 来源:
- 2006年浙江大学计算机及软件工程研究生机试真题
思路:
可以用动态规划的思路来做。保存两个数和中间的计算符,逐步向后推进即可。
据说用栈做这个题效果也不错。
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>#define M 200int isnumber(char c)
{return ('0' <= c && c <= '9');
}double compute(double a, char op, double b)
{switch(op){case '+':return a+b;case '-':return a-b;case '*':return a*b;case '/':return a/b;}
}void combine(double *a, char *op, double *b, char opnew, double c)
{if (opnew == '+' || opnew == '-'){*a = compute(*a, *op, *b);*op = opnew;*b = c;}else*b = compute(*b, opnew, c);
}int main(void)
{char s[M+1], tmp[M+1];int i, j;double a, b, c;char op, opnew;double res;while (gets(s)){if (strcmp(s, "0") == 0)break;a = 0.0;b = 0.0;op = '+';i = 0;while (s[i]){if (i != 0){i++;opnew = s[i++];i++;}elseopnew = '+';j = 0;while (isnumber(s[i]))tmp[j++] = s[i++];tmp[j] = '\0';c = atoi(tmp);combine(&a, &op, &b, opnew, c);}res = compute(a, op, b);printf("%.2lf\n", res);}return 0;
}
/**************************************************************Problem: 1019User: liangrx06Language: CResult: AcceptedTime:0 msMemory:912 kb
****************************************************************/
转载于:https://www.cnblogs.com/liangrx06/p/5084012.html
九度OJ 1019:简单计算器 (基础题、DP)相关推荐
- 九度OJ 1019 简单计算器
题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔 ...
- 九度 oj 1019
题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔 ...
- 打不开磁盘配额linux,九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)...
题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买.请问:你用有限的资金最 ...
- 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...
- Freckles - 九度 OJ 1144
Freckles - 九度 OJ 1144 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: In an episode of the Dick Van Dyke show, l ...
- 非常可乐(九度 OJ 1457)
非常可乐(九度 OJ 1457) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 1.题目描述: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为.因为每次当 see ...
- 九度OJ 题目1179:阶乘
/********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1179:阶乘 * 来源:http://ac.jo ...
- 九度OJ——1028继续畅通工程
题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...
- Leagal or Not - 九度 OJ 1448
Leagal or Not - 九度 OJ 1448 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: ACM-DIY is a large QQ group where man ...
最新文章
- iOS开发UI篇—transframe属性(形变)
- JSP页面中使用JSTL标签出现无法解析问题解决办法
- python wing 免费下载安装
- OpenCV 图像的加法
- 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇
- 金蝶云星空操作手册_金蝶国际CFO林波谈云业务:金蝶云·星空预计今年可以实现盈利...
- CRMEB v2.5.2常见错误修复办法
- 同时防服务器维修,加强服务器日常运维,避免宕机灾难发生
- sql server charindex函数和patindex函数详解(转)
- linux网站目录在哪_果核建站教程【二】环境安装与搭建第一个网站
- oracle列转行wm_concat,Oracle列转行函数wm_concat版本不兼容解决方案
- Hive 数据质量检测
- Codeforces Manthan, Codefest 18 (rated, Div. 1 + Div. 2) E.Trips
- 常用win10优化工具(后续继续更新)
- mbedtls 自带SSL demo调试
- 给div添加蒙版(遮罩?)
- 电子警察的系统结构和功能设计
- 无向简单图怎么判断_简单图的判定
- android列表倒计时,RecyclerView实现列表倒计时
- sqlserver 取余和取整