Fibsieve`s Fantabulous Birthday<规律>
2016-07-23 21:24
274 查看
Description
Fibsieve had a fantabulous (yes, it's an actual word) birthday party this year. He had so many gifts that he was actually thinking of not having a party next year.
Among these gifts there was an N x N glass chessboard that had a light in each of its cells. When the board was turned on a distinct cell would light up every second, and then go dark.
The cells would light up in the sequence shown in the diagram. Each cell is marked with the second in which it would light up.
![](http://7xjob4.com1.z0.glb.clouddn.com/678a248abb16e664b728836e149deaa8)
(The numbers in the grids stand for the time when the corresponding cell lights up)
In the first second the light at cell (1, 1) would be on. And in the 5th second the cell (3, 1) would be on. Now, Fibsieve is trying to predict which cell will light up at a certain time (given in seconds). Assume that N is large enough.
Input
Input starts with an integer T (≤ 200), denoting the number of test cases.
Each case will contain an integer S (1 ≤ S ≤ 1015) which stands for the time.
Output
For each case you have to print the case number and two numbers (x, y), the column and the row number.
Sample Input
3
8
20
25
Sample Output
Case 1: 2 3
Case 2: 5 4
Case 3: 1 5
Fibsieve had a fantabulous (yes, it's an actual word) birthday party this year. He had so many gifts that he was actually thinking of not having a party next year.
Among these gifts there was an N x N glass chessboard that had a light in each of its cells. When the board was turned on a distinct cell would light up every second, and then go dark.
The cells would light up in the sequence shown in the diagram. Each cell is marked with the second in which it would light up.
(The numbers in the grids stand for the time when the corresponding cell lights up)
In the first second the light at cell (1, 1) would be on. And in the 5th second the cell (3, 1) would be on. Now, Fibsieve is trying to predict which cell will light up at a certain time (given in seconds). Assume that N is large enough.
Input
Input starts with an integer T (≤ 200), denoting the number of test cases.
Each case will contain an integer S (1 ≤ S ≤ 1015) which stands for the time.
Output
For each case you have to print the case number and two numbers (x, y), the column and the row number.
Sample Input
3
8
20
25
Sample Output
Case 1: 2 3
Case 2: 5 4
Case 3: 1 5
// 注意 :这个题我在 light oj上用__int64 提交是错误的 用long long 能过 下面是AC代码</span>
<pre name="code" class="cpp">#include<cstdio> #include<cmath> long long cha(long long q) { long long z=sqrt(q); if(z*z==q) return z ; else return z+1; } int main() { int t; long long cut=0; scanf("%d",&t); while(t--) { cut++; long long s,x,y; scanf("%lld",&s); long long jiao=cha(s)*cha(s)-cha(s)+1; if(cha(s)%2==1) { if(s<=jiao) { x=cha(s); y=cha(s)-(jiao-s); } else { y=cha(s); x=cha(s)-(s-jiao); } } else { if(s>=jiao) { x=cha(s); y=cha(s)-(s-jiao); } else { y=cha(s); x=cha(s)-(jiao-s); } } printf("Case %lld: %lld %lld\n",cut,x,y); } return 0; }
相关文章推荐
- HDU5673->逆元求组合数&&卡特兰数
- static大显身手
- HDFS全面解析涉及基础、命令、API
- HTTP协议详解
- MYSQL函数学习
- 经典SVM之SMO算法实现
- NKOI 1466 广场铺砖
- 单链表的整表创建和删除以及顺序存储结构和链式结构的对比
- 推荐算法:基于约束的推荐
- smarty基础
- bzoj1500维修序列(splay)
- Openstack并行性能加速
- LateX正文与首页页眉线分别为单双线的设置方法
- mysql 主键 外键
- 平衡搜索树之AVLTree
- rxjava多线程切换
- 浅析C语言中的setjmp与longjmp函数
- Rxjava操作步骤
- C语言alarm()函数:设置信号传送闹钟
- Linux 定时器alarm()