题意
- 若干个数,第i个数是3^(i-1),你可以拿取若干个,求解第k大的拿法的权重
思路
- 水题,二进制每一位改成3权重即可
代码
#include<bits/stdc++.h>
using namespace std;
long long get_weight(int x){
long long ans=0;
for(int i=0;i<=31;i++){
if((x>>i)&1){
ans+=pow(3,i);
}
}
return ans;
}
int main(){
int t;
cin >> t;
for(int i=1;i<=t;i++){
int k;
cin >> k;
printf("Case #%d: %lld\n",i,get_weight(k));
}
return 0;
}