HDU-1391 Number Steps
http://acm.hdu.edu.cn/showproblem.php?pid=1391
Number Steps
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3280 Accepted Submission(s): 2030
Problem Description
Starting from point (0,0) on a plane, we have written all non-negative integers 0, 1, 2,... as shown in the figure. For example, 1, 2, and 3 has been written at points (1,1), (2,0), and (3, 1) respectively and this pattern has continued.![](https://www.cnblogs.com/data/images/1391-1.gif)
You are to write a program that reads the coordinates of a point (x, y), and writes the number (if any) that has been written at that point. (x, y) coordinates in the input are in the range 0...5000.
![](https://www.cnblogs.com/data/images/1391-1.gif)
Input
The first line of the input is N, the number of test cases for this problem. In each of the N following lines, there is x, and y representing the coordinates (x, y) of a point.
Output
For each point in the input, write the number written at that point or write No Number if there is none.
Sample Input
3
4 2
6 6
3 4
Sample Output
6
12
No Number
Source
Recommend
1 //看图找规律。x与y的关系。。。 2 #include<stdio.h> 3 int main() 4 { 5 int T,x,y; 6 scanf("%d",&T); 7 while(T--) 8 { 9 scanf("%d%d",&x,&y); 10 if(x!=y&&y+2!=x) 11 { 12 printf("No Number\n"); 13 } 14 else if(x==y) 15 { 16 if(x%2==0) 17 printf("%d\n",x+y); 18 else 19 printf("%d\n",x+y-1); 20 } 21 else 22 { 23 if(x%2==0) 24 printf("%d\n",2*x-2); 25 else 26 printf("%d\n",2*x-3); 27 } 28 } 29 return 0; 30 }