如何在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 中检查一个数是否为阳光数。

更新于:2022 年 10 月 28 日

6K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

立即开始
广告