《算法零基础100讲》(第1讲) 幂和对数题解
2021/12/11 1:17:13
本文主要是介绍《算法零基础100讲》(第1讲) 幂和对数题解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
231. 2 的幂
如果一个数是2的幂 那他转成二进制那肯定只会有一个1 并且1是在最前面的和这个数减1的数做且运算那必定是0.
比如8的二进制是1000 7的二进制是0111 他们做且运算得出的就是0
class Solution { public: bool isPowerOfTwo(int n) { if (n < 1) { return false; } return (n & n - 1) == 0; } };
列出所有剩下几的幂都可以这样做就是要考虑范围
class Solution { public: bool isPowerOfTwo(int n) { if (n == 1) { return true; } if (n <= 0 ) { return false; } unsigned int k = 1;//范围2的三十二次方-1 int i; for ( i = 1; i < 31; ++i) { k *= 2; if (k == n) return true; } return false; } };
326. 3 的幂
n 对 3 进行试除,直到 n 不再与 3 呈倍数关系,最后判断 n 是否为 3^0 = 1
class Solution { public boolean isPowerOfThree(int n) { if (n <= 0) return false; while (n % 3 == 0) n /= 3; return n == 1; } } class Solution { public: bool isPowerOfThree(int n) { if (n == 0) return false; if (n == 1) return true; unsigned int k = 1; int i; for (i = 1; i <= 20;++i) { k *= 3; if (k == n) return true; } return false; } };
342. 4的幂
- 用n对4取余,如果余数不为0,那肯定不是,如果余数为0就n = n / 4 继续上述过程,直到n = 1,即为4的幂
- n ==0的时候,返回false
class Solution { public: bool isPowerOfFour(int n) { if (n == 0) return false; while (n != 1) { if (n % 4 != 0) return false; n = n / 4; } return true; } }; class Solution { public: bool isPowerOfFour(int n) { if (n == 0) return false; if (n == 1) return true; unsigned int k = 1; int i; for (i = 1; i<=16; ++i) { k *= 4; if(k == n) return true; } return false; } };
这篇关于《算法零基础100讲》(第1讲) 幂和对数题解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求