Codeforces__Raising Bacteria
2015-09-21 19:08
555 查看
题目传送门:Raising Bacteria
//问题描述:一个盒子里面放一个细菌在一天可以增生两个细菌。 现在已知盒子里面细菌的个数,问你最初放多少个细菌可以增生盒子里面的细菌数量 //输入:盒子中细菌的数量 //输出:最初至少放的细菌数量 //算法分析:从2开始累乘过程计数! #include <iostream> #include <cstring> #include <algorithm> using namespace std; typedef long long LL ; int jisuan(LL n) { int num = 0; LL flag = 2; while (1) { if (n == 1) { num ++ ; break; } flag = 2; while (flag < n) { flag = flag * 2; } if (flag == n) { num ++ ; break; } else { flag = flag / 2; n = n - flag; num ++ ; } } return num ; } int main() { LL n; while (cin >> n) { cout << jisuan(n) << endl; } return 0; } //本题可以用位运算来求解,每次数量翻倍,都会左移。1的数量会保持不变,也就是1的数量一定是添加进去的,即数二进制1的数量即可
相关文章推荐
- xCode 7 编译出现错误:does not contain bitcode 解决办法
- 【转】友好的 ContainerView & AutoLayout 资料推荐
- [置顶] Linux DM9000网卡驱动程序完全分析 http://blog.csdn.net/ypoflyer/article/details/6209922
- AI-Tank
- 查询表锁争用情况 table_locks_waited & table_locks_immedaite
- setContentView(R.Layout.main)的意思
- raid5实现原理
- RAID5服务器磁盘阵列,两块盘坏了数据恢复
- http://blog.csdn.net/abcjennifer/article/details/7716281 过拟合问题
- 为什么使用HttpUrlConnection时候,用available方法不准确
- failed.org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hiber
- shell浅谈之九子shell与进程处理 http://blog.csdn.net/taiyang1987912/article/details/39529291
- 23种设计模式之一(创建型模式)Factory模式 http://blog.csdn.net/taiyang1987912/article/details/43148913
- 磁盘I/O性能----RAID
- servlet中图像上传以及缩小
- 华为AP6010DN-AGN配置(RAIDUS认证)
- Xenomai 3 和 PREEMPT_RT 有哪些优势相比,
- 甜甜圈合并 贪心排序 codechef Chain of Doughnuts
- MAC 使用Jetbrains's产品
- STL之pair对象