pku1702.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 69 行

CPP
69
字号
#include <stdio.h>

int main()
{
	__int64 n,base[21],p[21],num,temp,use;
	int i;
	base[0]=1;
	
	for(i=1,n=1;i<21;i++)
	{
		base[i]=base[i-1]*3;
	}
	
	scanf("%d",&n);
	
	while(n--)
	{
		scanf("%I64d",&num);
		
		for(i=0;i<21;i++) p[i]=0;
		
		for(i=0;num>0;i++)
		{
			temp=num%3;
			if(temp==1)
			{
				p[i]+=1;
			}
			if(temp==2)
			{
				p[i]-=1;
				p[i+1]=1;
			}
			num/=3;
		}
		for(i=0;i<20;i++)
		{
			if(p[i]==2)
			{
				p[i]=-1;
				p[i+1]+=1;	
			}	
		}
		for(i=0,use=0;i<20;i++)
		{
			if(p[i]==-1)
			{
				if(use==1) printf(",");
				printf("%I64d",base[i]);
				use=1;	
			}
		}
		if(use==0) printf("empty");
		printf(" ");
		for(i=0,use=0;i<20;i++)
		{
			if(p[i]==1)
			{
				if(use==1) printf(",");
				printf("%I64d",base[i]);
				use=1;	
			}
		}
		if(use==0) printf("empty");
		printf("\n");
			
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?