/*
坐标和数字 10剩余时间:4天1小时14分21秒 编程语言:C C++ Java C# 答题时长:120 分钟│难度等级:
/*
如图所示,我们从0开始把整数写在两条直线上,0, 1, 2, 3分别写在(0,0), (1,1), (2,0)和(3, 1)这4点上,如图规律继续写下去。
现在给定坐标(x,y),问(x,y)位置的整数是多少,如果这个位置不存在整数,输入-1。其中, 0<=x,y<=1100。
*/
///题目解析: 对于该题。我表示很简单
//观察坐标和数值的变化规律我们可以发现
//1、对于(0,0)、(2,2)、(4,4)、(6, 6)... 我们可以发现它的数值是坐标的两倍,故num = 2*x;
//2、同样的对于坐标(1,1)、(3, 3)、(5, 5)...它们是1.的对应下一项,故分别为num = 2*(x-1)+1 = 2*x-1;
//同理,(2,0)、(4,2)、(6,4)、(8, 6)...为(y+1,y+1)项的下一项,故num = 2*(y+1)-1+1 = 2*y+2;
//对于,(3,1)、(5, 3)、(7, 5)... 有num = 2*y+1;
//b编程很简单
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
class Test {
public:
static int position (int x,int y)
{
if(x==y)
{
if(x%2==0)return 2*x;
else return 2*x-1;
}
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载