A - Robot Program

题意:求一个机器人从点(0,0)走到点(x,y)需要的命令数。(同一个命令不能连续用两次)

可以一直向下走,向右走。

如果x=y,那画一张图就可知道,(0,0)到(1,1)是2步,到(2,2)是4步,到(3,3)是6步,到(x,x)是2 * x步;
如果x<y,那就走到(x,x)点,共2 * x步,再直走(y-x)步,到(x,y)点,由于同一个命令不能连续使用2次,所以直走一次需要原地踏步一次,
步数就是(y-x)* 2,总共是多少步呢?2 * x+(y-x) * 2嘛?别忘了直走到终点后是不需要再原地等待的啦,我们多算了一步,减掉减掉!!
所以是2 * x+(y-x) * 2-1====>>>>step=2 * y-1;
如果x>y呢?同理走到(y,y)点,再直走(x-y)步,巴拉巴拉...我省略啦~~step=2 * x-1;

我要上代码!0.0

#include <stdio.h>
int main()
{
	int i,j,n,t;
	scanf("%d",&t);
	while(t--)
	{
		int x,y,sum;
		scanf("%d %d",&x,&y);
		if (x>y)
		sum=2*x-1;
		else if (x<y)
		sum=2*y-1;
		else
		sum=2*x;
		printf("%d\n",sum);
	}
	return 0;
}

posted @ 2020-11-22 20:26  索饮  阅读(151)  评论(0编辑  收藏  举报