链接:https://ac.nowcoder.com/acm/contest/9510/A
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld
题目描述
牛牛家里有一个计算器。
牛牛不小心把自己的计算器玩坏了。乘法(×)和除法(÷)按钮全都失灵。
所以,牛牛决定以后用它来计算只含加(+)和减(-)的表达式。
最近,牛牛突然发现,这个计算器的幂(^)按钮变成了异或键!本来 5^2=25 的,现在 5^2=7 了。
因此他想知道,输入一个表达式后计算器会返回多少。
该计算器认为优先级异或(^)>加(+),减(-)。
输入描述:
输入一串表达式,保证该字符串只含数字,+,-,^,且每个数字 <= 1000000
输出描述:
输出答案。
示例1
输入
复制
3+5^2-9
输出
复制
1
备注:
令 size 表示表达式长度,保证表达式合法且 符号个数+1=数的个数 。对于所有的数据 1<size<1e6;
#include<iostream>
#include<cstdio>
#include<bits/stdc++.h>
#include<string.h>
#include<stack>
using namespace std;
typedef long long ll;
int main(){
string s;
cin >> s;
int n = s.length();
//通过令f=1或f=-1来进行加减运算
//用las来存上一次记录下的数,
//用cur来存这次记录下的数,
//每次讲las和cur做^运算,
//原因:x^0 = x, 每次碰到运算符就将las和cur做^运算,并加到res中,然后将l

这篇博客介绍了牛牛如何使用一个损坏的计算器,其中乘法和除法键失灵,而幂键变成了异或键。计算器遵循异或优先于加减的规则。文章提供了输入输出描述,举例说明了计算器在接收到特定表达式时的计算结果。
最低0.47元/天 解锁文章
5881

被折叠的 条评论
为什么被折叠?



