hdu 1098 Lowest Bit 解题报告
2013-09-22 23:18
246 查看
题目链接:http://code.hdu.edu.cn/game/entry/problem/show.php?chapterid=1§ionid=2&problemid=22
题目意思:给出一个数,观察其二进制表示,从右往左看,记录遇到第一个出现1的位置pos,做2 ^ pos 的运算。
这几天杭电的告示:Exercise Is Closed Now! 再加上想用一些简单的题目来调剂一下,因此就做ACM Steps 吧。
用了递归的方法来做。
题目意思:给出一个数,观察其二进制表示,从右往左看,记录遇到第一个出现1的位置pos,做2 ^ pos 的运算。
这几天杭电的告示:Exercise Is Closed Now! 再加上想用一些简单的题目来调剂一下,因此就做ACM Steps 吧。
用了递归的方法来做。
#include <iostream> #include <math.h> // pow库函数的使用 using namespace std; int cnt; void cal(int n) { int flag = 0; if (n == 0) return; // 递归的出口,已计算完n的二进制表示 else { if (n % 2) // 从右往左数,第一次遇到1 { printf("%.0lf\n", pow(2, cnt)); // 计算2^cnt flag = 1; } else cnt++; // 累计不为1的位置有多少个 if (flag) return; // 一旦从右边发现1,递归结束,也是递归的出口 cal(n/2); } } int main() { int a; while (scanf("%d", &a) != EOF && a) { cnt = 0; cal(a); } return 0; }
相关文章推荐
- HDU 1098解题报告
- HDU解题报告——1038
- HDU 2015 偶数求和 解题报告
- 【解题报告】HDU 4631 Sad Love Story 最短点距(动态)
- HDU解题报告——1046
- HDU 4893 Wow! Such Sequence! 解题报告(线段树)
- HDU 1066 解题报告 详细思路+code
- hdu 4463 Outlets 解题报告
- hdu 1142 A Walk Through the Forest 最短路+记忆化搜索 解题报告
- HDU 2602 解题报告
- hdu 2446 二分搜索解题报告
- hdu 1106 - 排序(解题报告)
- HDU 4642 Fliping game 解题报告
- HDU 3071-Gcd & Lcm game-线段树+素因子分解-[解题报告]HOJ
- hdu 超级楼梯 解题报告
- HDU 1520 Anniversary party (树形dp) 解题报告
- HDU 1587 Flowers 解题报告
- Hdu 2034 之解题报告
- Hdu 2047之解题报告
- Hdu 1049模拟解题报告