zoukankan      html  css  js  c++  java
  • poj2265

    斜坐标系,注意找规律。说明在代码里。


    #include <iostream>
    #include <math.h>

    using namespace std;

    #define eps 1e-6
    #define zero(x) (((x)>0?(x):-(x))<eps)

    int direct[6][2] = { { 01 }, { -11 }, { -10 }, { 0, -1 }, { 1, -1 }, { 10 } };//斜坐标系的六个方向

    int main()
    {
        int x;
        while (cin >> x)
        {
            double n = (sqrt(12 * x - 3)*1.0 - 3) / 6;
            int p = zero(n - ceil(n)) ? (int) n : ceil(n);
            int t = x - 3 * p * p + 3 * p - 1;
            int xcord, ycord;
            //x equals the n loops plus t.
            //cout << (int) p << ' ' << t << endl;
            xcord = p - 1; ycord = 0;
            while (1)
            {
                if (t == 0goto L1;//t==0就可以撤出来了~
                xcord += direct[0][0], ycord += direct[0][1];//先向direct[0]走一步
                t--;
                if (t == 0goto L1;
                for (int i = 1; i <= p - 1; i++)
                {
                    xcord += direct[1][0], ycord += direct[1][1];//再向direct[1]走p-1步
                    t--;
                    if (t == 0goto L1;
                }
                for (int i = 2; i <= 6; i++)
                {
                    for (int j = 1; j <= p; j++)
                    {
                        xcord += direct[i % 6][0], ycord += direct[i % 6][1];//然后向其他剩余的五个方向各走p步
                        t--;
                        if (t == 0goto L1;
                    }
                }
            }
        L1: cout << xcord << ' ' << ycord << endl;
        }
    }


  • 相关阅读:
    jquery 序列化form表单
    nginx for windows 安装
    nodejs idea 创建项目 (一)
    spring 配置 shiro rememberMe
    idea 2018 解决 双击shift 弹出 search everywhere 搜索框的方法
    redis 在windows 集群
    spring IOC控制反转和DI依赖注入
    redis 的安装
    shiro 通过jdbc连接数据库
    handlebars的用法
  • 原文地址:https://www.cnblogs.com/james1207/p/3366157.html
Copyright © 2011-2022 走看看