`
YuHuang.Neil
  • 浏览: 180757 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

判断一个数是否是2的幂的快速方法

阅读更多
使用Java语言编写程序来判断一个整数是不是2的阶次方数,要求使用尽量快速简便的方法。

答:如果一个数是2的阶次方数,那么它的二进制数的首位一般是1,后面接若干位0。比如8就是1000,64是1000000。如果将这个数减1再与该数做&运算,则应该全部位都是0。所以如果一个数d,满足d&(d-1)==0,则这个数必定是可以被2的幂整除的数。

import java.util.Scanner;

public class Valid {
        public static boolean doValid(int Number){
                if((((Number-1)&Number)==0)&&Number!=0){
                        return true;
                }
                return false;
        }

        public static void main(String[] args){
                Scanner s = new Scanner(System.in);
                System.out.print("Input a number : ");
                boolean result = Valid.doValid(s.nextInt());
                if(result){
                        System.out.println("可以被2的幂整除!");
                }else{
                        System.out.println("不可以被2的幂整除!");
                }
        }

}




分享到:
评论

相关推荐

    C语言判断一个数是否是2的幂次方或4的幂次方

    快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以...

    如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方?

    将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那...

    Leetcode 326:3的幂

      找出数字 n 是否是数字 b 的幂的一个简单方法是,n%b只要余数为 0,就一直将 n 除以 b。如果n是b的幂,那么最终结果肯定是1. eg.(1)1%3 = =1(true);  (2)3%3= =0 3/3== 1(true)  (3)45%3= =0   15%3=

    基于C语言实现快速幂算法(源码)

    定义了快速幂函数 power,接受两个参数:底数 x 和指数 n。 在函数中,首先判断指数 n 的值,如果为0则直接返回1,如果为负数则转换为正数处理,并将结果取倒数。 使用循环计算底数 x 的指数 n 次幂,每次将指数 n ...

    ECMAScript 2018快速入门 高清完整PDF

    ECMAScript 2018快速入门 作者:黄灯桥  定价:29元  印次:1-1  ISBN:9787302516811  出版日期:2019.01.01  印刷日期:2018.11.28 本书分为13章,较为系统地介绍ECMAScript语言,内容包括变量与常量、表达式...

    ACM常用代码

    判断一个数是否素数 图论: 1.Prim 算法求最小生成 树 2.Dijkstra 算法求单源 最短路径 3.Bellman-ford 算法求 单源最短路径 4.Floyd 算法求每对节点 间最短路径 排序/查找: 1.快速排序 2.希尔排序 3.选择法排序 4....

    acm常用代码及算法

    判断一个数是否素数 图论: 1.Prim算法求最小生成树 2.Dijkstra算法求单源最短路径 3.Bellman-ford算法求单源最短路径 4.Floyd算法求每对节点间最短路径 排序/查找: ...

    ACM 内部预定函数

    7.判断一个数是否素数 8.求子距阵最大和 9.求一个数每一位之和 10.质因数分解 11.高斯消元法解线性方程组 图论: 1.Prim算法求最小生成树 2.Dijkstra算法求单源最短路径 3.Bellman-ford算法求单源最短...

    RSA算法的纯Python实现

    4、RSAtest.py一个使用RSA算法库的例子。例子从生成密钥对开始,对数据进行加解密,签名和验证签名,最后用修改后的消息再次验证签名。 这个RSA算法最低支持32位密钥长度,最长没限制。但是事实上,在我的电脑上...

    delphi 开发经验技巧宝典源码

    0237 如何实现一个应用程序只能打开一个进程 158 7.4 其他数据处理技术 159 0238 对计算结果四舍五入 159 0239 获取一个字符的ASCII值 159 0240 判断字符串中是否有文字符 160 0241 如何从字符串中提取...

    【数论基础】判断素数、埃拉托色尼筛选法、欧几里得算法、反复平方法

    bool isPrime(int d){//判断是否是素数 if(d==2) return true; if(d<2||d%2==0) return false; int i=3; while(i<=sqrt(d)){//注意开方,减少无所谓的运算 if(d%i==0) return false; i+=2; }

    算法导论(part1)

    ·在第21.4节中,我们换掉了对不相交-集合-并(disjoint-set-union)数据结构运行时间的证明,代之以利用潜势方法(potential method)导出一个紧致界的证明。 ·在第22.5节中,对强连通子图算法正确性的证明更简单、...

    算法导论(part2)

    ·在第21.4节中,我们换掉了对不相交-集合-并(disjoint-set-union)数据结构运行时间的证明,代之以利用潜势方法(potential method)导出一个紧致界的证明。 ·在第22.5节中,对强连通子图算法正确性的证明更简单、...

    论文研究-基于粒子群算法的判断矩阵一致性修正.pdf

    自从RSA算法提出后,方幂模快速算法一直是研究重点之一,方幂模算法的改进和速度的提高直接影响RSA算法的整体性能和广泛应用。深入分析了方幂模计算的秦九韶算法、分块算法、二进制自适应分组查表法和最短加法链算法...

    挑战程序设计竞赛(第2版)

    3.1.2 假定一个解并判断是否可行 3.1.3 最大化最小值 3.1.4 最大化平均值 3.2 常用技巧精选(一) 3.2.1 尺取法 3.2.2 反转(开关问题) 3.2.3 弹性碰撞 3.2.4 折半枚举(双向搜索) 3.2.5 坐标离散化 3.3 活用各种...

    RSA算法的纯Python实现(源码)

    4、RSAtest.py一个使用RSA算法库的例子。例子从生成密钥对开始,对数据进行加解密,签名和验证签名,最后用修改后的消息再次验证签名。 这个RSA算法最低支持32位密钥长度,最长没限制。但是事实上,在我的电脑上...

    leetcode双人赛-algo-practice:问题解决练习

    power_four:判断一个数是否是四的幂 power_three:查找一个数是三的幂 快速排序实现 reversesentence:颠倒一个句子的单词 线程池:线程池实现 tmplt:C++ 11 模板用例 切换:切换备用灯泡问题(leetcode) ...

    Python实现快速大文件比较代码解析

    刚开始我是通过最简单的方法,利用for循环去一个个的判断,时间复杂度为m的n次幂,当然当文件数量级为十万或者百万时,速率简直慢到了极点。 解决方法 利用set()的different(方法)可快速比较,两个set集合的不同之...

    delphi 开发经验技巧宝典源码06

    0237 如何实现一个应用程序只能打开一个进程 158 7.4 其他数据处理技术 159 0238 对计算结果四舍五入 159 0239 获取一个字符的ASCII值 159 0240 判断字符串中是否有文字符 160 0241 如何从字符串中提取...

Global site tag (gtag.js) - Google Analytics