View Code of Problem 10

#include "stdio.h"

void main()
{
	int i,j,x,t;
	int n;
	int a[1000][4];

	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		int k[4]={0};
		for(j=0;j<4;j++)
			scanf("%d",&a[i][j]);
		for(x=0;x<14;x++)
		{
			for(j=3;j>=0;j--)
			{
				if(a[i][j]!=0&&a[i][j]==a[i][j-1]&&k[j]==0&&k[j-1]==0)					//2222->2204->2024->0224->0044
				{
					a[i][j]=a[i][j]*2;
					a[i][j-1]=0;
					k[j]=1;						//标记
				}
				if(a[i][j]==0&&j!=0)
				{
					a[i][j]=a[i][j-1];
					a[i][j-1]=0;
				}
				if(a[i][j]==0&&j==0)
					break;
			}
		/*	for(t=0;t<4;t++)
			{
				printf("%d ",a[i][t]);
			}
			printf(" \n");*/
		}

		for(j=0;j<4;j++)
		{
			if(j+1==4)
				printf("%d",a[i][j]);
			else
				printf("%d ",a[i][j]);
		}
		printf("\n");
	}
}

Double click to view unformatted code.


Back to problem 10