FZU-2147 A-B Game
2015-08-23 19:06
253 查看
#include <cstdio> #include <iostream> int t, cas; long long a, b; int main() { cas = 0; scanf("%d", & t); while(t --) { scanf("%I64d %I64d",& a, & b); int k = 0; while(a > b) { a = a / 2 + 1; k ++; } printf("Case %d: %d\n", ++ cas, k); } return 0; }
题意:
给出a,b。然后操作a = a - (a % x)。(x任意)。问使a小于b的操作次数。
题解:
尝试几次。就发现想余数最大,除数x为(向下取整) a / 2 + 1。a % x 为(向上取整)x/2 - 1 (即 a - x)。之后问题就变成a = a - (a - x) = x。
相关文章推荐
- FZU2148——叉积——Moon Game
- 编写高质量代码改善C#程序的157个建议——建议136:优先使用后缀表示已有类型的新版本
- html5学习之路_002
- Hadoop数据迁移 distcp 工具
- KMP算法
- 深度学习-神经网络1
- 伊甸园eden剧情视频合集
- leetcode-118-Pascal's Triangle
- [转]android笔记--Intent和IntentFilter详解
- java类对象与byte数组的互相转换
- 我的PSoC学习(一)(PSoC Creator 2.0+win7+CY8C38):入门级别的五个工程
- MyBatis学习(二)
- C语言基础知识之(五):break 和 continue 运用详解
- 分析RAC下一个SPFILE整合的三篇文章的文件更改
- ubuntu安装及使用wiresharp
- codecombat之边远地区的森林1-11关及地牢38关代码分享
- 第5周工作周报
- 转位和弦
- swift详解之八---------------下标脚本
- 第一次接触安卓--记于2015.8.21