如何在Java中检查一个数是否为阳光数?
如果一个数的下一个值的平方根是任何数的完全平方数,则称该数为阳光数。
为了更清楚地说明,如果我们将 1 加到任何数上,我们就会得到下一个值。然后我们必须找出它的平方根。如果我们得到任何整数,那么我们可以说它是任何数的完全平方数。如果我们确认下一个数有一个完全平方数,那么输入的数就是阳光数,否则就不是阳光数。
在这篇文章中,我们将了解如何使用 Java 编程语言检查一个数是否为阳光数。
举几个例子
示例 1
输入数字为 80。
让我们使用阳光数的逻辑来检查它。
80 的下一个值为 80 + 1 = 81
81 的平方根 = 9
正如我们在这里看到的,81 是 9 的完全平方数。
因此,80 是一个阳光数。
示例 2
输入数字为 48。
让我们使用阳光数的逻辑来检查它。
48 的下一个值为 48 + 1 = 49
49 的平方根 = 7
正如我们在这里看到的,49 是 7 的完全平方数。
因此,48 是一个阳光数。
示例 3
输入数字为 122。
让我们使用阳光数的逻辑来检查它。
122 的下一个值为 122 + 1 = 123
123 的平方根 = 11.09053651
正如我们在这里看到的,123 不是完全平方数。
因此,122 不是阳光数。
其他一些阳光数的例子包括 3、8、15、24、35、48、63 等。
语法
要获得一个数的平方根,我们在 **java.lang** 包的 **Math** 类中有一个内置的 **sqrt()** 方法。
以下是使用该方法获取任何数的平方根的语法。
double squareRoot = Math.sqrt(input_vale)
您可以使用 **Math.floor()** 查找最接近的整数。
Math.floor(square_root)
算法
**步骤 1** - 通过初始化或用户输入获取一个整数。
**步骤 2** - 然后我们通过向其添加 1 来找到它的下一个值,并将其存储在另一个变量中。
**步骤 3** - 我们找到下一个值的平方根。
**步骤 4** - 现在我们找到最接近的完全平方根,并用下一个值的平方根减去它。
**步骤 5** - 如果减法后的值为零,那么我们将得到确认,它是一个整数,表明下一个值是任何数的完全平方数。
**步骤 6** - 如果我们得到确认,下一个数是完全平方数,则打印该数是阳光数,否则它不是阳光数。
多种方法
我们提供了不同方法的解决方案。
使用静态输入值
使用用户定义的方法
让我们逐一查看程序及其输出。
方法 1:使用静态输入值
在这种方法中,一个整数值将在程序中初始化,然后使用算法检查该数是否为阳光数。
示例
import java.util.*; public class Main{ public static void main(String args[]){ //declare an int variable and initialize with a static value int inputNumber=8; //declare a variable which store next value of input number double next=inputNumber + 1; //Find the square root of the next number //store it as double value double square_root = Math.sqrt(next); //check whether the square root is a integer value or not //if yes return true otherwise false if(((square_root - Math.floor(square_root)) == 0)) //if true then print it is a sunny number System.out.println(inputNumber + " is a sunny number."); else //if true then print it is a sunny number System.out.println(inputNumber + " is not a sunny number."); } }
输出
8 is not a sunny number.
方法 2:使用用户定义的方法
在这种方法中,我们将一个静态值作为输入数字,并将此数字作为参数传递给用户定义的方法,然后在方法内部使用算法检查该数字是否为阳光数。
示例
import java.util.*; public class Main{ public static void main(String args[]){ //declare an int variable and initialize with a static value int inp=15; //call the user defined method inside the conditional statement if(checkSunny(inp)) //if true then print it is a sunny number System.out.println(inp + " is a sunny number."); else //if true then print it is a sunny number System.out.println(" is not a sunny number."); } //define the user defined method static boolean checkSunny(int inputNumber){ //declare a variable which store next value of input number double next=inputNumber + 1; //Find the square root of the next number // store it as double value double square_root = Math.sqrt(next); //check whether the square root is a integer value or not //if yes return true otherwise false return ((square_root - Math.floor(square_root)) == 0); } }
输出
15 is a sunny number.
在本文中,我们探讨了如何使用三种不同的方法在 Java 中检查一个数是否为阳光数。