版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
今天刷题的时候,刷了两道题都是用来判断数a是不是数b的几次方,刚开始是判断数a是不是数b的2次方比如说2,48之类,这道题有些小的技巧就是如果一个数是2的幂,那么这个数的二进制里一定只含有一个1所以呮需要判断这个数的二进制只含有一个1就行,用 n & n-1大法来进行判断
需要注意的是,数a一定不能是非正数
接下来我又做了一个题目是判断一个数是不是3的幂,比如39,27之类的这类数没法从二进制的角度去判断,只能用数学的角度去判断
需要拿出大杀器Log函数,如果一个数a是3的幂那么一定满足:
得到的结果q一定是一个整数。
其中a和b都是浮点数得到的结果是a%b
特此记录,谨防忘记