int t = (n + 2)/3;
t表示本次循环拿走的苹果的数量。
如果n能够被3整除,就取n/3个苹果,否则就取n/3+1个苹果。
但是,如果n能够被3整除,(n + 2)/3结果和n/3一样;如果不能整除,(n + 2)/3和n/3+1结果一样。
这是很牛逼的思想,在一个大佬那里看的,不然if判断会超时。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int day = 0;
int ans = 0;
while(n != 0){
day++;
//int t = 0;
// if(n%3 == 1 && ans == 0){
// ans = day;
// t = n/3 +1;
// }else if(n%3 == 2){
// t = n/3 +1;
// }else{
// t = n/3;
// }哥们超时了,多一点判断都不行啊
int t = (n + 2)/3;
if(n%3 == 1 && ans == 0) ans = day;
n -= t;
}
System.out.println(day+" "+ans);
}
}