uva 264 Count on Cantor
2015-06-21 11:17
260 查看
找到要求的位置在第几个斜线上,再分奇偶两种情况处理。需要注意的是,当n恰好为第k斜线末尾的那个位置时特殊处理一下就好了
#include<bits/stdc++.h> using namespace std; int main() { long long a,b,k,n; while(cin>>n) { printf("TERM %lld IS ",n); for(k=1; k*(k+1)<=2*n; ++k); --k; n-=(k*(k+1)/2); if(k&1) { a=1; b=n?k+1:k; for(int i=2; i<=n; ++i) ++a,--b; } else { a=n?k+1:k,b=1; for(int i=2; i<=n; ++i)--a,++b; } printf("%lld/%lld\n",a,b); } return 0; }
相关文章推荐
- 当深度学习遇上异构并行计算
- TCP/IP协议族-----6、IP分组的交付和转发
- 解决input标签placeholder属性浏览器兼容性问题的一种方法
- Javascript运用函数计算正方形的面积
- centOS7忘记密码
- spring boot 框架实用技巧(二)初次上手
- 补发《超级迷宫》站立会议八
- POJ 3469 Dual Core CPU 最小割
- 第十四周项目3-OOP版电子词典
- PopoverController for iPhone
- 第八项任务——总结
- linux samba
- 通过id查询用户,但是只返回指定的字段
- C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
- android中填充界面布局的三种方式
- Training:Hash及应用
- javascript基础学习之-事件冒泡
- C# new和override的区别
- list容器合并链表
- 19Spring返回通知&异常通知&环绕通知