题目:3424. 最少砝码
思路:假设n个砝码可以测量1-k个数,那么再加上值为2k+1的砝码,可以接着测出k+1~3k+1 ,也就是说n+1个砝码可以测量1~3k+1 ,即a[n+1]=3a[n]+1,而a[0]=0,a[1]=1,a[2]=3*a[1]+1,…可以推出a[n]=(3^n-1)/2,只要a[n]>=k,求出对应的n即可
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e5+10;
int main(){
int n;
scanf("%d",&n);
int t=ceil(log(2*n+1)/log(3));
printf("%d",t);
return 0;
}