LASCALE - Quả Cân

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>

int main()
{
    int n,a[20],Ma[1000],Mb[1000],ta,tb,k;
    a[0]=1;
    for(int i=1;;i++)
    {
        a[i]=a[i-1]*3;
        if(a[i]>300000000)
            break;
    }
    scanf("%d",&n);
    ta=0;
    tb=0;
    k=1;
    while(1)
    {
        if(k==0)
            break;
        else if(k==1) 
        {
            for(int i=0;i<=20;i++)
            {
                if(a[i]==n)
                {
                     tb++;
                     Mb[tb]=a[i];
                     k=0;
                     break;
                }
                else if(a[i]>n)
                {
                     if(a[i]/2<n)
                     {
                         n=a[i]-n;
                         tb++;
                         Mb[tb]=a[i];
                         k=-1;
                         break;
                     }
                     else
                     {
                         n=n-a[i-1];
                         tb++;
                         Mb[tb]=a[i-1];
                         break;
                     }
                } 
            }
        }
        else
        {
            for(int i=0;i<=20;i++)
            {
                if(a[i]==n)
                {
                     ta++;
                     Ma[ta]=a[i];
                     k=0;
                     break;
                }
                else if(a[i]>n)
                {
                     if(a[i]/2<n)
                     {
                         n=a[i]-n;
                         ta++;
                         Ma[ta]=a[i];
                         k=1;
                         break;
                     }
                     else
                     {
                         n=n-a[i-1];
                         ta++;
                         Ma[ta]=a[i-1];
                         break;
                     }
                } 
            }
        }
    }
    printf("%d ",ta);
    for(int i=ta;i>=1;i--)
        printf("%d ",Ma[i]);
    printf("\n");
    printf("%d ",tb);
    for(int i=tb;i>=1;i--)
        printf("%d ",Mb[i]);
   // getch();
}
    
            
                             

Download