UVA 10161 Ant on a Chessboard

来源:互联网 发布:你有阿里云幕布么 编辑:程序博客网 时间:2024/06/06 10:52

题目

棋盘上的蚂蚁

分析


  1. 按路线把这个表格铺开~

[1]
(1, 1)
2 [3] 4
(1, 2) (2, 2) (2, 1)
9 8 [7] 6 5
(1, 3) (2, 3) (3, 3) (3, 2) (3, 1)
10 11 12 [13] 14 15 16
(1, 4) (2, 4) (3, 4) (4, 4) (4, 3) (4, 2) (4, 1)
……

思路

  1. 取对角线的值;
  2. 取当前行的方向;

代码

#include <stdio.h>#include <math.h>int main(void){    long long m, n;    while (scanf("%lld", &m), m) {        n = ceil(sqrt(m));        if (n*n - m+1 < m - (n-1)*(n-1))            if (n & 1)                printf("%lld %lld\n", n*n - m+1, n);            else                printf("%lld %lld\n", n, n*n - m+1);        else            if (n & 1)                printf("%lld %lld\n", n, m - (n-1)*(n-1));            else                printf("%lld %lld\n", m - (n-1)*(n-1), n);    }    return 0;}
0 0
原创粉丝点击