题目1: 各位相加
class Solution {
public int addDigits(int num) {
while(num >= 10){
int next = 0;
while(num != 0){
next = next + num % 10;
num /= 10;
}
num = next;
}
return num;
}
}
题目2: 猜数字大小
解题思路:
使用二分法
如果猜的数 <= 0
, 答案在区间[left, mid]
中
如果猜的数 > 0
, 答案在区间[mid + 1, right]
中
public class Solution extends GuessGame {
public int guessNumber(int n) {
int left = 1, right = n;
while(left <= right){
int mid = left + (right - left) / 2;
if(guess(mid) <= 0){
right = mid - 1;
}else{
left = mid + 1;
}
}
return left;
}
}
tips:
int mid = left + (right - left) / 2;
防止计算时溢出