本文主要是介绍c++判断一个数是否是2或3的n次方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
判断一个数是否是2的n次方:
bool fun(int n){return n>0&&(n&(-n))=n;
}
判断一个数是否是3的n次方:
//方法1 如果这个数能被3整除,且最后是1,则一定是3的n次方
bool fun(int n){while(n&&n%3==0){n/=3;}return n==1;
}
//方法2 最大的3的幂是3^19=1162261467(int类型最大范围内幂是19)
//3的n次幂一定是这个数的约数
//如果是long long类型最大范围到3^39= 4052555153018976267
bool fun(int n){return n>0&&1162261467%n==0; }
这篇关于c++判断一个数是否是2或3的n次方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!