UVa 10161 Ant on a Chessboard
来源:互联网 发布:华为云计算调研报告 编辑:程序博客网 时间:2024/06/04 18:11
一道数学水题,找找规律。
首先要判断给的数在第几层,比如说在第n层。然后判断(n * n - n + 1)(其坐标也就是(n,n)) 之间的关系。
还要注意n的奇偶。
Problem A.Ant on a Chessboard
Background
One day, an ant called Alice came to an M*M chessboard. She wanted to go around all the grids. So she began to walk along the chessboard according to this way: (you can assume that her speed is one grid per second)
At the first second, Alice was standing at (1,1). Firstly she went up for a grid, then a grid to the right, a grid downward. After that, she went a grid to the right, then two grids upward, and then two grids to the left…in a word, the path was like a snake.
For example, her first 25 seconds went like this:
( the numbers in the grids stands for the time when she went into the grids)
25
24
23
22
21
10
11
12
13
20
9
8
7
14
19
2
3
6
15
18
1
4
5
16
17
5
4
3
2
1
1 2 3 4 5
At the 8th second , she was at (2,3), and at 20th second, she was at (5,4).
Your task is to decide where she was at a given time.
(you can assume that M is large enough)
Input
Input file will contain several lines, and each line contains a number N(1<=N<=2*10^9), which stands for the time. The file will be ended with a line that contains a number 0.
Output
For each input situation you should print a line with two numbers (x, y), the column and the row number, there must be only a space between them.
Sample Input
8
20
25
0
Sample Output
2 3
5 4
1 5
AC代码:
//#define LOCAL#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;int main(void){#ifdef LOCALfreopen("10161in.txt", "r", stdin);#endifint N;while(scanf("%d", &N) == 1 && N){int n = (int)ceil(sqrt(N));int x, y;if(n & 1 == 1){if(N < n * n - n + 1){x = n;y = N - (n - 1) * (n - 1);}else{y = n;x = n * n - N + 1;}}else{if(N < n * n - n + 1){y = n;x = N - (n - 1) * (n - 1);}else{x = n;y = n * n - N + 1;}}cout << x << " " << y << endl;}return 0;}
- uva 10161 Ant on a Chessboard
- UVA 10161 - Ant on a Chessboard
- uva 10161 - Ant on a Chessboard
- UVa 10161 - Ant on a Chessboard
- UVA 10161-Ant on a Chessboard
- uva 10161 - Ant on a Chessboard
- UVa 10161 - Ant on a Chessboard
- UVA 10161 Ant on a Chessboard
- uva 10161 - Ant on a Chessboard
- UVa 10161: Ant on a Chessboard
- uva 10161 Ant on a Chessboard
- UVA 10161 Ant on a Chessboard
- uva 10161 - Ant on a Chessboard
- UVa 10161 - Ant on a Chessboard
- UVA - 10161 - Ant on a Chessboard
- uva--10161--Ant on a Chessboard
- UVa 10161 Ant on a Chessboard
- UVa 10161 - Ant on a Chessboard
- 白话经典算法系列之一 冒泡排序的三种实现
- LeetCode——Remove Duplicates from Sorted List
- Java内存溢出
- php core dump 生成和分析
- http://www.cnblogs.com/fish-li/archive/2013/05/05/3061816.html
- UVa 10161 Ant on a Chessboard
- 关于在UIViewController页面用代码添加UINavigationBar的方法
- 视频系统支持国内外100多个视频网站解析去广告播放
- Wifi有戏:宿舍变身小影院
- 软键盘设置
- RGB和RGBQUAD的区别
- Oracle学习2
- ServletActionContext VS ActionContext
- Swift入门教程