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();
}