栈:
按照题目要求,乘除加减依次进行,那么我们只需要按照执行次序,定义一个index变量记录执行次序,依次进行以上操作,并且入栈,最后将所有结果全部相加返回即可
class Solution {
public:
int clumsy(int N) {
vector<int> s;
s.push_back(N);
--N;
int index = 0;
while (N) {
if (0 == index % 4) {
s.back() *= N;
}
else if (1 == index % 4) {
s.back() /= N;
}
else if (2 == index % 4) {
s.push_back(N);
}
else {
s.push_back(-N);
}
++index;
--N;
}
return std::accumulate(s.begin(), s.end(), 0, std::plus<int>());
}
};