`

【java】判断一个数是不是2的N次方

    博客分类:
  • java
阅读更多
第一种方法,对N进行循环除以2.
	public boolean nCF(int n){
		boolean b = false;
		while(true){
			int j=n%2;
			n=n/2;
			if(j==1){
				b=false;
				break;
			}if(n==2){
				b=true;
				break;
			}
			
		}
		return b;
	}


第二种方法,算2的N次方数据,比较N,小于继续乘以2.等于的话就是2的N次方。大于的话就不是2的N次方。
	public boolean nCF2(int n){
		boolean b = false;
		int x = 2;
		while(true){
			if(x==n){
				b=true;
				break;
			}if(x<n){
				x=2*x;
			}else{
				b=false;
				break;
			}
		}
		return b;
	}



第三种方法,2的N次方。用二进制表示都是10,100,1000……
然后的话就有了第三种方法。
	public boolean nCF3(int n){
		boolean boo = true;
		String s = Integer.toBinaryString(n);
		byte[] b = s.getBytes();


		for(int i=1;i<b.length;i++){
			if(b[i]!=48){
				boo = false;
				break;
			}
		}
		return boo;
		
	}
分享到:
评论
3 楼 zesky20075392 2014-04-16  
private static boolean isPowerOfTwo(int val) {
        return (val & -val) == val;
    }
2 楼 duduli 2012-08-02  
yaven 写道
dudu, 让你用移位和log,你不用

请贴代码。。。     
1 楼 yaven 2012-08-02  
dudu, 让你用移位和log,你不用

相关推荐

    类的编写和使用三个案例 :1 判断三角形并求面积 2 求N次方幂的类 3 人民币转换大写

    接下来定义一个名为`Npower`的类,用于求一个数的N次幂。 ```java public class Npower { // 定义两个私有整型变量表示基数和指数 private int x; private int n; // 默认构造方法 public Npower() { } // ...

    java函数呀

    Java 函数提供了多种操作来处理列表,包括添加元素、清空列表、克隆列表、元素查找、确保容量、获取元素、查找索引、判断空列表、查找最后一个索引、移除元素、删除元素范围、替换元素、获取列表大小、转换数组、...

    世界上最大的互异完全n次数

    在数学中,一个完全n次方数是指可以表示为某个整数的n次方的形式,比如4是一个完全2次方数,因为4=2²。而互异性则意味着这些完全n次方数是不同的,它们不共享相同的因子。 这篇博客文章可能探讨了如何寻找或计算...

    考虑如何通过使用break语句,求出最大值n,使得1¹+2²+…+n的n次方小于等于long数据类型所能表示的最大值(即Long.MAX_VALUE),并给出1

    本问题的核心是找到一个正整数n,使得1¹ + 2² + ... + n^n 的和不超过long数据类型能表示的最大值,即Long.MAX_VALUE。在解决这个问题时,我们将运用循环控制结构、条件判断以及数学归纳法的思想。 首先,我们要...

    java基础编程题50道有答案

    2. 判断一个数是否为素数 判断素数是编程中常见的基础练习之一。部分摘录中的 `for(inti=101;i;i+=2)` 表示遍历101到199之间的奇数,并通过循环除以2到该数的平方根之间的所有整数来判断是否能被整除,从而确定是否...

    Java位运算的应用

    14. **判断奇偶性**:`a%2`等价于`a&1`,可以用来快速判断一个数是否为奇数。 15. **条件赋值优化**:`if (x == a) x = b; else x = a;`可以用`x = a ^ b ^ x;`替换,实现相同的效果。 16. **相反数**:`x`的相反...

    二进制、十进制、十六进制相互转换的Java程序

    - **二进制转十进制**:可以通过按权展开求和的方法,每个二进制位乘以其权重(2的n次方),然后将所有结果相加。 - **十进制转二进制**:可以使用除2取余法,即不断将十进制数除以2,取余数,直到商为0,余数逆序...

    JAVA案例 第二篇:针对大数值取整数和小数、保留几位小数、特定位数的数值、自幂数.docx

    在JAVA中,我们可以使用`Math.floor()`和`Math.ceil()`函数来获取一个数的整数部分,而使用`Math.round()`函数则可以将数字四舍五入到最接近的整数。对于取小数部分,我们可以用原数减去整数部分得到: ```java ...

    java基础算法训练

    - 在Java中,位运算是高效计算的手段,如快速判断一个数是否是2的幂次方,或者进行颜色编码等。 通过"Java基础算法训练",你可以系统地练习这些概念,并在实践中提升编程技能。无论你是初学者还是有一定经验的...

    Java面试 Java超级经典100问题 Java高级开发工程师必备 Java面试宝典

    判断一个栈是否是另一个栈的弹出序列23.层序遍历二叉树。24.后序遍历二叉搜索树。25.二叉树中和为某值的路径.26.复杂链表的复制27.二叉搜索树转换为双向链表.28.打印字符串中所有字符的排列29.数组中出现次数超过...

    用数组写水仙花数(java代码).docx

    // 判断一个数是否为水仙花数 public static boolean isNarcissisticNumber(int num) { int sum = 0; int temp = num; // 计算各位数字的三次方和 while (temp &gt; 0) { int digit = temp % 10; sum += Math...

    java小程序

    在Java中,我们可以使用循环或递归来判断一个数是否为质数。基本方法包括试除法,即从2到该数的平方根进行遍历,如果能整除则不是质数。 2. **数组求子集**:在数组中找出所有可能的子集,可以使用递归或回溯算法...

    java工程师面试题总结

    例如,2乘以8可以通过2左移3位(2)来实现,因为左移位相当于乘以2的n次方。 9. Java中使用BigInteger类可以处理超出基本数据类型范围的大整数,而BigDecimal用于处理大数值的精确运算,特别是涉及浮点数运算时,如...

    java解惑 PDF版

    例如,判断一个整数是否为奇数时,使用`return i % 2 == 1;`可能看似正确,但实际上对于负奇数来说,这会导致错误的结果。正确的判断奇数的方法应该是`return i % 2 != 0;`。 取余操作符的使用需要注意其结果的符号...

    《Java程序设计》课程设计报告带有函数功能的计算器设计

    《Java程序设计》课程设计报告中的主题是设计一个带有函数功能的计算器,旨在巩固和深化学生对Java语言的理解,提高编程实践能力。该计算器具备简易计算和科学计算两种模式,适用于基础和高级数学运算。 在简易计算...

    java中关于变量的练习题及答案

    - **题目描述**: 假设a,n为任意整数(0&lt;n),编写一个程序,分别求出表达式a&lt;&lt;n, a*2的n次方, A&gt;&gt;n以及a/2的n次方。 - **答案**: ```java int a = 5, n = 3; int leftShift = a &lt;&lt; n; // 左移n位 int ...

    质数、水仙花数、自幂数、冒泡排序(小程序)

    **定义**:自幂数是指一个n位数,其各位数字的n次幂之和等于该数本身。例如,1634是一个4位的自幂数,因为1^4 + 6^4 + 3^4 + 4^4 = 1634。 #### 实现一(适用于三位数) ```java public class Shuixianhuashu { ...

    4747 Java语言程序设计(一)

    - 示例代码:遍历每个数,找到所有真因数,累加并判断是否等于原数。 **2.7 输入正实数x,求平方不超过x的最大整数n** - 示例代码:使用循环结构,逐步增加n的值,直到n的平方超过x为止。 **2.8 输出星号组成的...

    PTA题目(L1)(Java).docx

    这个题目是关于幂运算的,参赛者需要计算2的n次方,其中n是不超过10的正整数。题目中使用了`Math.pow()`函数来计算指数,并且强制类型转换为整数以满足输出要求。通过这个题目,学习者将理解如何使用数学函数并处理...

    JAVA语言程序设计

    学生需要通过编写循环和条件判断逻辑来确定一个数是否为素数。 ### 教学方法 “基础优先,问题驱动”的教学方式强调基础知识的讲解与实际问题解决能力的结合。教材通过设计具体的问题和编程任务,引导学生主动探索...

Global site tag (gtag.js) - Google Analytics