1.题目
坏了的计算器 - 力扣(LeetCode) https://leetcode-cn.com/problems/broken-calculator/?utm_source=LCUS&utm_medium=ip_redirect&utm_campaign=transfer2china
2.题解
这道题我本来是正着写的,可是正着写怎么都不对,如果是5到8,就要先减再乘;如果是5到9,就是先乘再减。但是正着判断怎么都不方便,甚至还超出时间限制。所以我学习了根哥的反着写。的确很好用。只需要取余来看下Y值奇偶的两种情况就可以了。
3.代码
class Solution {
public int brokenCalc(int X, int Y) {
//X > Y
if (X>=Y) {
return X-Y;
}
// X < Y
//偶数
if(Y%2==0){
return 1+brokenCalc(X,Y/2);
}else {
//奇数
return 1+brokenCalc(X,Y+1);
}
}
}
4.执行结果
![](https://img.haomeiwen.com/i3103903/6e0037cc5def744e.png)
网友评论