#include<iostream> using namespace std; bool isPower(int n, int a) { //思路很巧妙 while(0 == n % a) n /= a; if(1 == n) return true; return false; } //如果base是2,则可巧用位运算 bool is2Power(int n) { return !(n & (n - 1)); } int main() { int i; for(i = 1; i <= 1000; i++) if(isPower(i, 3)) cout << i << " "; cout << endl; for(i = 1; i <= 1000; i++) if(is2Power(i)) cout << i << " "; cout << endl; return 0; }
相关文章
- 用迭代法求 x=根号a。求平方根的迭代公式为:X(n+1)=(Xn+a/Xn) /2。要求前后两次求出的x的差的绝对值 小于10的-5次方
- Python3算法题:如何判断一个数是否为2的n次方 | 逻辑与,移位
- 判断一个整数x是否是2的N次方。
- 判断一个数是否为2的n次方
- 给定两个字符串x、y,设计一个算法来判断是否存在一对正整数m、n,使得x^m = y^n。
- 判断整数 x 能否表示成 n(n >= 2)个连续正整数的和
- 使用分治法求X的N次方,时间效率为lgN
- 黑马程序员——判断是否为2的N次方并取N
- 2.3-7 描述一个运行时间为Θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素
- 用一个表达式,判断一个数X是否是2的n次方(2,4,8,16...),不可以用循环语句。