如何在Java中检查一个数是否为邪恶数?


如果一个数的二进制表示中1的个数为偶数,则称该数为邪恶数。

为了更清楚地说明,我们首先需要将给定的数字转换为二进制数。转换后,我们需要计算其中1的个数。如果1的个数为偶数,则可以认为给定的数字是邪恶数。如果1的个数为奇数,则可以认为给定的数字是讨厌数

在这篇文章中,我们将了解如何使用Java编程语言来检查一个数是否为邪恶数。

举几个例子

示例1

输入数字为20

让我们使用邪恶数的逻辑来检查它

20的二进制表示为= 10100

1的个数= 2。

我们注意到这里得到的是一个偶数

因此,20是一个邪恶数

示例2

输入数字为55。

让我们使用邪恶数的逻辑来检查它

55的二进制表示为= 110111

1的个数= 5。

我们注意到这里得到的是一个奇数。

因此,55不是一个邪恶数。

示例3

输入数字为112。

让我们使用邪恶数的逻辑来检查它。

112的二进制表示为= 1110000

1的个数= 3。

我们注意到这里得到的是一个奇数。

因此,112不是一个邪恶数。

其他一些邪恶数的例子包括0、3、5、6、9、10、12、15、17、18、20、23、24、27、29,等等。

  • 步骤1 - 通过初始化或用户输入获取一个整数。

  • 步骤2 - 首先将输入数字转换为二进制数并将其存储到一个变量中。

  • 步骤3 - 然后循环,直到二进制数等于零。

  • 步骤4 - 在每次迭代中,我们检查个位数是否为1,并在计数后也移除个位数。

  • 步骤5 - 最后,无论我们得到什么计数值,都检查该数字是偶数还是奇数。

  • 步骤6 - 如果是偶数,则我们得出结论,该数字是邪恶数,否则该数字不是邪恶数。

多种方法

我们提供了不同方法的解决方案

  • 使用静态输入值

  • 使用用户定义的方法

让我们逐一查看程序及其输出。

方法1:使用静态输入值

在这种方法中,程序中将初始化一个整数值,然后使用该算法来检查该数字是否为邪恶数。

示例

import java.util.*; import java.io.*; public class Main{ //main method public static void main(String[] args){ //declare a variable whcih store the static input int inputNumber = 15; //declare other variables for calculations long binaryOfInputNumber = 0; int temp= inputNumber; int reminder = 0; int i = 1; //binary conversion while(temp != 0){ //find the unit place number reminder = temp % 2; binaryOfInputNumber += reminder * i; temp = temp / 2; i = i * 10; } // for counting the number of 1's we declare a variable int count = 0; //take a loop with a condition till the value is zero while(binaryOfInputNumber != 0){ // check whether the unit place consisting 1 or not if(binaryOfInputNumber % 10 == 1) //increment the count value count++; // after counting removing the unit place in each iteration binaryOfInputNumber = binaryOfInputNumber / 10; } // conditon for checking the count value is even or odd // If even then the number is an evil number otherwise not if(count % 2 == 0) //return true if satisfied System.out.println(inputNumber + " is an evil number"); //return false if not satisfied else System.out.println(inputNumber + " is not an evil number"); } }

输出

15 is an evil number

方法2:使用用户定义的方法

在这种方法中,将要求用户输入输入数字,并将此数字作为参数传递给用户定义的方法,然后在方法内部使用该算法来检查该数字是否为邪恶数。

示例

public class Main { //main method public static void main(String[] args){ //initialize input value int num = 56; System.out.println("Enter a number : "+num); //pass the input value into our user defined method //if its return true then it's an evil number if(checkEvil(num)) System.out.println(num + " is an evil number"); else System.out.println(num + " is not an evil number"); } //define the user defined method public static boolean checkEvil(int inputNumber){ //convert number to binary //the method return a string value String str = Integer.toBinaryString(inputNumber); //type casting string to Integer //store it into a variable long binaryOfInputNumber= Long.parseLong(str); // for counting the number of 1's we declare a variable int count = 0; //binary conversion while(binaryOfInputNumber != 0){ // check whether the unit place consisting 1 or not if(binaryOfInputNumber % 10 == 1) //increment the count value count++; // after counting removing the unit place in each iteration binaryOfInputNumber = binaryOfInputNumber / 10; } // conditon for checking the count value is even or odd if(count % 2 == 0) //return true if satisfied return true; //return false if not satisfied return false; } }

输出

Enter a number : 56
56 is not an evil number

在这篇文章中,我们探讨了如何使用三种不同的方法在Java中检查一个数是否为邪恶数。

更新于: 2022年10月27日

3K+ 阅读量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告