这道题目没太多意思,可以使用一般性的表达式求值来解决,实际上只需要用栈模拟即可。
class Solution {
public:
int clumsy(int N) {
stack<int> st;
st.push(N);
int index = 0;
while(--N){
switch(index)
{
case 0:
st.top() *= N;
break;
case 1:
st.top() /= N;
break;
case 2:
st.push(N);
break;
case 3:
st.push(-N);
break;
}
index = (index + 1)%4;
}
int res = 0;
while(!st.empty()){
res += st.top();
st.pop();
}
return res;
}
};