首页 > 代码库 > UVA 11291 - Smeech(概率+词法分析)
UVA 11291 - Smeech(概率+词法分析)
UVA 11291 - Smeech
题目链接
题意:给定一个表达式形如e=(p,e1,e2) 该表达式的值为 p?(e1+e2)+(1?p)?(e1?e2),求出值
思路:题目是很水,但是处理起来还挺麻烦的,模拟写编译器LEX分析器原理去写了。
代码:
#include <cstdio> #include <cstring> const int N = 100005; char str[N]; int now, len, token; double value; void gettoken() { while (str[now] == ' ') {now++;} if (str[now] == '(') { token = 0; now++; } else if (str[now] == ')') { token = 1; now++; } else if ((str[now] >= '0' && str[now] <= '9') || str[now] == '.' || str[now] == '-') { int flag = 1; if (str[now] == '-') { flag = -1; now++; } value = http://www.mamicode.com/0;>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。