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;
        }
    }


  • 相关阅读:
    INSERT VALUES 语句
    SQL Server UNION
    SQL Server自定义函数(Scalarvalued Functions)
    设计一程序(Copy.java),可以实现文件的复制操作
    Eclipse 乱码 解决方案总结(UTF8 GBK)
    Java Collection: List、Set、 Map、 HashMap、 Hashtable、 Vector
    [Linux内核]从开机加电到main函数执行前的过程
    eclipse设置本地Javadoc API路径
    归并排序的递归和非递归实现(C代码)
    解决安装MySQL5.1出现Cannot create windows service for mysql.error:0
  • 原文地址:https://www.cnblogs.com/james1207/p/3366157.html
Copyright © 2011-2022 走看看