思路一:使用栈来模拟,分别给每一位分配一个index下标来标记,开始的时候,先将下标为0的元素入栈,因为我们要使用取余数的方式来判断运算符号,而第一位永远是正数,因此先将第一位入栈,然后开始用for循环遍历做取余运算,当index%40的时候是乘号,index%41的时候是除号,index%42的时候是加号,index%43的是减号,减号用负数来表示
class Solution {
public int clumsy(int N) {
Deque<Integer> stack = new LinkedList<Integer>();
stack.push(N);
int index = 0,sum=0;
for(int i = N-1;i> 0;i--){
if(index%4 == 0){
stack.push(stack.pop()*i);
}else if(index%4 == 1){
stack.push(stack.pop()/i);
}else if(index%4 == 2){
stack.push(i);
}else stack.push(-i);
index++;
}
while(!stack.isEmpty()){
sum+=stack.pop();
}
return sum;
}
}