TopcoderArchiveVisit Topcoder
SRM18 May 2006
SRM 303

SpiralNumbers

Problem statement, definition, constraints, and public examples.

Problem Statement

Consider all positive integers written in the following manner (you can imagine an infinite spiral).
                 21  22  23  24  25  26
                 20   7   8   9  10 ...
                 19   6   1   2  11 ...
                 18   5   4   3  12 ...
                 17  16  15  14  13 ...
     
You task is to determine the position (row,column) of a given number N, assuming that the center (number 1) has position (0,0). Rows are numbered from top to bottom, columns are numbered from left to right (for example, number 3 is at (1,1)). Your method should return a string containing the position of N in form (R,C) where R is the row and C is the column. R and C must not contain any leading zeroes.

Definition

Class:
SpiralNumbers
Method:
getPosition
Parameters:
int
Returns:
String
Method signature:
String getPosition(int N)
(be sure your method is public)

Constraints

  • N will be between 1 and 2,147,483,647, inclusive.

Examples

  1. 2
    Returns: "(0,1)"
  2. 3
    Returns: "(1,1)"
  3. 7
    Returns: "(-1,-1)"
  4. 17
    Returns: "(2,-2)"
  5. 24
    Returns: "(-2,1)"
  6. 830
    Returns: "(-14,3)"
  7. 765409
    Returns: "(-437,221)"
Back to all problems