英雄会(csdn pongo)题解之坐标和数字

坐标和数字

题目详情:


如图所示,我们从0开始把整数写在两条直线上,0, 1, 2,  3分别写在(0,0), (1,1), (2,0)和(3, 1)这4点上,如图规律继续写下去。

现在给定坐标(x,y),问(x,y)位置的整数是多少,如果这个位置不存在整数,输入-1。其中, 0<=x,y<=1100。

-----------------------------------------------------------------------------------------------------------------------

这道题很简单,就是两条直线y=x和y=x-2。10分白得了,下面是C++代码

#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;
class Test {
public:
    static int position (int   x,int   y){
		//if(y<=0) return -1;
		int res=-1;
		if(1>=x){
			if(x==y)
				res=x;
		}else{//x>=2
			int tmp=x-2;
			int div=tmp/2;
			int ys=tmp%2;
			if(x==y)
				res=(div+1)*4+ys;
			else if(y==x-2)
				res=(div+1)*4+ys-2;			
		}
        return res;
    }
};

//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main(){   
	std::cout<<Test::position(5,6)<<std::endl;
	std::cout<<Test::position(5,3)<<std::endl;
	std::cout<<Test::position(7,7)<<std::endl;
} 
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。




评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值