首页 > 其他 > 详细

坐标与数字--【英雄会】

时间:2014-02-25 14:21:34      阅读:262      评论:0      收藏:0      [点我收藏+]

回到学校,一切显得自由多了,今天看到一道题,“坐标与数字”,通过率接近80%,在此分享一下自己的拙作...

如题:

如图所示,我们从0开始把整数写在两条直线上,0, 1, 2,  3分别写在(0,0), (1,1), (2,0)和(3, 1)这4点上,如图规律继续写下去。 现在给定坐标(x,y),问(x,y)位置的整数是多少,如果这个位置不存在整数,输入-1。其中, 0<=x,y<=1100。 

bubuko.com,布布扣

从通过率来说,这道题已经是目前为止最简单了;

直接看图,两条角度为45度的直线;

1.其中通过(0, 0)点的直线坐标都是x == y的,另外一条直线则是x == y + 2;即向又平移了两位;

2.在同一水平,右侧的数字比左侧的数字大2

3.左侧的直线数字的规律是0,1 , 4 , 5...即每两个数字是相邻的,每隔两个数字相差2;

根据上述3个点写出如下:

#include<stdio.h>
int position (int x,int y)
{
    if(x == y)
    {
        x = y % 2;  //余数
        y = y / 2;  //个数
        y = 4 * y + x;
        return y;  
    }
    else if(x == y + 2)
    {
        x = y % 2;  //余数
        y = y / 2;  //个数
        y = 4 * y + x + 2;
        return y;
    }
    else
        return -1;
}
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{    
    printf("%d",position(7,5));
}
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。  

相信这个对大家没有难度...


o(∩_∩)o 

坐标与数字--【英雄会】

原文:http://blog.csdn.net/xjm199/article/details/19829541

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!