get到了;
由于每个土豆的重量都是3^(i-1),所以可以转化为二进制,对于任意一个重量二进制中都有相应的位置,第1大就是1,第二大10,第三大11...
为1就加上3^(i-1)
#include<bits/stdc++.h> using namespace std; #define int long long int power(int a,int b) { int ans=1; while(b) { if(b%2) ans*=a; a*=a; b>>=1; } return ans; } signed main() { int t,cnt=0; cin>>t; while(t--) { cnt++; int k,ans=0; cin>>k; cout<<"Case #"<<cnt<<": "; for(int i=0;k;i++) { if(k%2) ans+=power(3,i); k=k>>1; } cout<<ans<<endl; } }