⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1654.txt

📁 北大ACM题目例程 详细的解答过程 程序实现 算法分析
💻 TXT
字号:


#include <stdio.h>

const int dx[]={-1, 0, 1,-1, 0, 1,-1, 0, 1};
const int dy[]={-1,-1,-1, 0, 0, 0, 1, 1, 1};

int main()
{
	int x1, x2, y1, y2, cas;
	char c;
	__int64 area;
	scanf( "%d", &cas );
	while( cas-- )
	{

		x1 = y1 = 0;
		area = 0;
		c=getchar();		
		if(c<='9'&&c>='1')
			ungetc( c ,stdin );
		while(1)
		{
			scanf( "%c", &c );
			if( c == '5' )break;
			
			x2 = x1, y2 = y1;
			x1 += dx[c-'1'], y1 += dy[c-'1'];

			area += x1*y2 - x2*y1;
		}
		if( area < 0 ) area = -area;

		printf( "%I64d", area/2 );
		if( area % 2 ) printf( ".5" );

		printf( "\n" );
	}

	return 0;
}

#include"iostream.h"
#include"math.h"
#include"stdio.h"
void main()
{int t,a;
_int64 x,y,xt,yt;char b;_int64 st;
cin>>t;
for(;t>0;t--)
{x=0;y=0;xt=0;yt=0;st=0;
while(1)
{cin.get(b);a=b-'0';if(a==5)break;
	switch (a)
	{case 1:x--;y--;break;
	case 2:y--;break;
	case 3:x++;y--;break;
	 case 4:x--;break;
	 case 6:x++;break;
	case 7:x--;y++;break;
	case 8:y++;break;
	case 9:x++;y++;break;
	
	}
st+=x*yt-y*xt;
	
xt=x;yt=y;
}
if(st<0)st=-st;
printf("%I64d",st/2);
if(st/2*2!=st)printf(".5");
printf("\n");
}

}



⌨️ 快捷键说明

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