UVA - 10161 Ant on a Chessboard
2014-10-05 23:23
447 查看
题目大意:给出数字,求该数字在矩阵中的位置
解体思路:蛋疼的规律找到就可以,对角线是以1为开头,后面公差为2的等差数列的和
解体思路:蛋疼的规律找到就可以,对角线是以1为开头,后面公差为2的等差数列的和
#include<cstdio> int main() { // int n, x, y, number; // scanf("%d", &n); // int a[100][100]; /* for(int i = 0, j = n -1; j >= 0; j--,i++) { number = 1 + (j + 1) * j; a[i][j] = number; if(j % 2 == 0) { int add = 1; int fu = -1; for( y = j - 1; y >= 0; y--) { a[i][y] = number + add; add++; } for( x = i + 1; x < n; x++) { a[x][j] = number + fu; fu--; } } else{ int add = 1; int fu = -1; for(y = j - 1; y >= 0; y--) { a[i][y] = number + fu; fu--; } for(x = i + 1; x < n; x++) { a[x][j] = number + add; add++; } } } for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) printf("%d\t",a[i][j]); printf("\n"); } */ int num; int number; while(scanf("%d", &num) != EOF && num) { for(int i = 0; ;i++) { number = 1 + (i + 1) * i; if(number - i <= num && num <= number + i) { int move = num - number; // printf("move is %d\t i is %d\n", move, i); if( i % 2 == 0) if(move >= 0) printf("%d %d\n",i+1-move,i+1); else printf("%d %d\n",i+1,i+1+move); else if(move >= 0) printf("%d %d\n",i+1,i+1-move); else printf("%d %d\n",i+1+move,i+1); break; } } } return 0; }
相关文章推荐
- uva 10161 Ant on a Chessboard
- UVA 10161 Ant on a Chessboard
- uva 10161 - Ant on a Chessboard
- UVA10161 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
- Uva10161 Ant on a Chessboard
- UVA 10161 (暑假-数学-B - 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