P9748 [CSP-J 2023] 小苹果 题解
结论
通过计算,可得出当 \(n\) % \(3=1\) 时,则说明第 \(n\) 个苹果将被拿走.其他时候,直接将 \(n\) 减去 \(n/3\) (向上取整.)
结论过程
代码
#include<bits/stdc++.h>
using namespace std;
int ans1, ans2, n;
int main() {
scanf("%d", &n);
for (int i = 1; ; i++) {
if (n == 0) break; // 没有苹果了
if (n % 3 == 1 && !ans2) ans2 = i; // 记录答案
ans1++; // 天数加 1
n -= ceil(n / 3.0); // 向上取整拿掉的苹果
}
printf("%d %d", ans1, ans2);
return 0;
}