java判断一个数是2的几次方

public static void main(String[] args) {
		//////////
        int result = (int)(Math.log(8)/Math.log(2));
        System.out.println(result);
    }
### 判断一个字是否为水仙花法 在 Java 中,可以通过分解字的每一位并计算其立和来判断字是否为水仙花。以下是实现这一功能的具体法: #### 法描述 对于任意给定的一个三位 `num`,可以将其拆分为百位、十位和个位三个部分。分别求这三个部分的立值并将它们相加得到总和 `sum`。如果 `sum` 等于原始输入的字,则说明这个字是一个水仙花。 具体操作步骤如下: 1. 使用取模运算 `%` 获取个位上的值; 2. 结合整除运算 `/` 和取模运算获取十位上的值; 3. 继续通过整除运算提取百位上的值; 4. 计算各个位置值的三次之和并与原比较。 下面是完整的代码示例以及解释: ```java import java.util.Scanner; public class NarcissisticNumber { public static void main(String[] args) { // 创建 Scanner 对象用于接收用户输入 Scanner scanner = new Scanner(System.in); System.out.print("请输入一个三位:"); int number = scanner.nextInt(); // 提取各位字 int onesDigit = number % 10; // 个位 int tensDigit = (number / 10) % 10; // 十位 int hundredsDigit = number / 100; // 百位 // 计算字的立和 int sumOfCubes = Math.pow(onesDigit, 3) + Math.pow(tensDigit, 3) + Math.pow(hundredsDigit, 3); // 判断是否为水仙花 if (sumOfCubes == number) { System.out.println(number + " 是水仙花!"); } else { System.out.println(number + " 不是水仙花!"); } // 关闭资源 scanner.close(); } } ``` 此代码实现了从控制台读入数据的功能,并按照逻辑流程完成了对输入字是否属于水仙花的判定过程[^1]。 --- ### 进一步扩展至多位的情况 虽然传统意义上的“水仙花”仅限于三位范围内的定义,但实际上也可以推广到其他长度的自然上。例如四叶玫瑰(四位)、五角星(五位)等等。这些统称为阿姆斯特朗或者自幂。下面提供一段通用版本的代码支持检测任何正整是否满足此类条件: ```java import java.util.Scanner; public class GeneralizedNarcissisticNumberChecker { public static boolean isArmstrong(int num){ String strNum = Integer.toString(num); int length = strNum.length(); int tempSum=0; for(char ch :strNum.toCharArray()){ int digit=Integer.parseInt(Character.toString(ch)); tempSum +=Math.pow(digit,length); } return(tempSum==num)? true:false ; } public static void main(String []args){ Scanner scan=new Scanner(System.in); System.out.println("Enter any positive integer:"); int userInput=scan.nextInt(); if(isArmstrong(userInput)){ System.out.println(userInput +" is an Armstrong Number."); } else{ System.out.println(userInput +" isn't an Armstrong Number."); } scan.close(); } } ``` 这段程序能够处理任意大小的非负整型作为候选对象来进行验证工作[^2]。 --- ### 注意事项 当运行以上两个例子中的任何一个时,请确保已安装配置好 JDK 开发环境并且具备基本命令行交互能力以便执行编译链接调试整个项目文件夹结构下的源码文件(.java结尾)[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值