表达式直接求值——分治做法
来源:互联网 发布:c语言简单的图形编程 编辑:程序博客网 时间:2024/05/23 20:14
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#define MAXN 101char s[MAXN];int calac(int L, int R){ int i, p = -1, lv = 0; int m = 0; for (i = L; i <= R; i++){ switch (s[i]){ case '(': lv++; break; case ')': lv--; break; case '+': case '-': if(!lv) p = i; break; case '*': case '/': if(!lv && p == -1) p = i; break; default: m = m * 10 + s[i] - '0'; } } if (p == -1) return s[L] == '(' ? calac(L + 1, R - 1) : m; int a1 = calac(L, p - 1), a2 = calac(p + 1, R); switch (s[p]){ case '+': return a1 + a2; case '-': return a1 - a2; case '*': return a1 * a2; case '/': return a1 / a2; }}int main(){ gets(s); printf("%d\n", calac(0, strlen(s) - 1)); system("pause"); return 0;}
0 0
- 表达式直接求值——分治做法
- 中缀表达式直接求值
- 表达式求值——栈
- NYOJ35——表达式求值
- 栈——表达式求值
- nyoj35——表达式求值
- LINTCODE——表达式求值
- 数据结构作业—表达式求值
- [数据结构] 表达式求值(转化为后缀表达式再求值或直接求值)
- [数据结构] 表达式求值(转化为后缀表达式再求值或直接求值)
- 表达式求值(中缀表达式——后缀表达式——求值)
- 数据结构——栈—表达式求值
- 栈的应用——表达式求值
- 表达式求值——栈的应用
- 递归——Ny 305 表达式求值
- 栈应用——表达式求值
- 表达式求值——栈实现
- 表达式求值——栈模拟
- andriod中的ImageView显示的几种方式
- poj 2516Minimum Cost 最小费用最大流
- UVA - 1436 Counting heaps
- oracle加密工具
- ofbiz下如何实现 prototype、jQuery多库共存
- 表达式直接求值——分治做法
- 阅读Sofia-SIP源码一 全局宏定义
- 某块奇怪的android系统板子无法adb connect
- mysql查看某一条记录在数据库中是第几条
- za
- OFBIZ 电子商城商品如何 进行多币种结算
- 关于nextLine()和next()的使用
- 制作Android 升级包
- C语言经典例题及答案1