1 solutions

  • 0
    @ 2025-12-3 17:01:25

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    long long n,ans;
    int a[1000000],t,bj,k;
    void f(long long x)
    {
    	for(long long i=x;i>0;i/=3)
    	{
    		a[t++]=i%3;
    		if(i%3==2) bj=t-1,k=1;
    	}		
    }
    void ff()
    {
    	long long tmp=1;
    	for(int i=0;i<t;i++)
    	{
    		ans+=tmp*a[i];
    		tmp*=3;		
    	}
    }
    int main()
    {
    // 	freopen("2.in","r",stdin);
    //	freopen("2.out","w",stdout);
    	cin>>n;
    	f(n);
    	if(k==0) 
    	{
    		cout<<n;
    		return 0;		
    	}
    	for(int i=bj;i>=0;i--)
    		a[i]=0;
    	int jw=1;
    	for(int i=bj+1;i<t;i++)
    	{
    		a[i]=a[i]+jw;
    		jw=0;
    		if(a[i]==2) a[i]=0,jw=1;		
    	}
    	if(jw==1) a[t++]=1;
    	ff();
    	cout<<ans;
        return 0;
    }
    
    • 1

    Information

    ID
    946
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    10
    Tags
    # Submissions
    1
    Accepted
    1
    Uploaded By