代码:
#include <stdio.h>
int num(int x) {
int res = x, cnt = 0;
while(x > 0) {
cnt += x % 3;
x /= 3;
res += x;
}
return res + cnt / 3;
}
int calc(int x) {
int l = 1, r = x, mid = 0;
while(r - l > 1) {
mid = (l + r) >> 1;
int tmp = num(mid);
if(tmp < x) {
l = mid;
}
else if(tmp > x) {
r = mid;
}
else {
break;
}
}
return r - l <= 1 ? r : mid;
}
int main() {
int n;
scanf("%d",&n);
printf("%d",calc(n));
return 0;
}
样例全过,测试点全红,我试过了,五个点大1,五个点大2,求捞