程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 1657 Distance on Chessboard

POJ 1657 Distance on Chessboard

編輯:C++入門知識

POJ 1657 Distance on Chessboard


中文題。

【分析】:這題思路建立其實應該主要在對象的操作上,如何求出象走的步數是關鍵,其他的都比較好想到。

對於象,可以將棋盤上的格點分為兩類:第一類是它的橫坐標與縱坐標只差為奇數;第二類是差為偶數。

因為象每走一步,其橫縱坐標增加或減少的絕對值是相等的,所以其橫縱坐標的絕對值只差的奇偶性是不變的。所以如果出發時的橫縱坐標差值是奇或偶,則終點一定是與其出發的點的奇偶性相同的,不相同就輸出INF。而後如果 x==y,則一步就可以到達,如果不等,就2步到達。

詳見代碼:

//220k 0ms 
#include
using namespace std;

int main()
{
	int T;
	char begin[3],end[3];
	int x,y;
	cin>>T;
	while(T--)
	{
		cin>>begin>>end;
		x = abs(begin[0] - end[0]);
		y = abs(begin[1] - end[1]);
		
		if(x == 0&&y == 0) printf("0 0 0 0\n");
		else{
			// 王的步數 
			if(x


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved