Swift程序:检查输入数字是否为Neon数
本教程将讨论如何编写一个Swift程序来检查输入数字是否为Neon数。
在数字系统中,如果一个数字的平方数的各位数字之和等于该数字本身,则称之为Neon数。
以下是Neon数的示例:
让我们看看数字9是否为Neon数:
9的平方是81,81的各位数字之和是9 (8 + 1 = 9)
所以9是Neon数
让我们看另一个例子:15
输入的数字不是Neon数
这里,15不是Neon数,因为15的平方是225,而225的各位数字之和是9 (2 + 2 + 5 = 9),这与15不相等。
算法
步骤1 - 从用户处输入整数。
步骤2 - 读取整数并将其赋值给名为inputNumber的变量。
步骤3 - 计算数字的平方,并将其赋值给名为squareNumber的变量。
步骤4 - 使用while循环,通过切片计算各位数字之和,并将结果赋值给squareNumber。
步骤5 - 使用if语句检查该和是否与输入数字匹配。如果匹配,则输入数字为Neon数;如果不匹配,则输入数字不是Neon数。
步骤6 - 在输出屏幕上显示最终结果
示例1
以下程序演示如何检查输入数字是否为Neon数。
import Foundation import Glibc print("Please enter the number-") var inputNumber = Int(readLine()!)! var squareNumber = inputNumber * inputNumber var sum = 0 var reminder = 0 while(squareNumber > 0){ reminder = squareNumber % 10 sum = sum + reminder squareNumber = squareNumber / 10 } if (sum == inputNumber){ print("Entered number \(inputNumber) is neon number") } else { print("Entered number \(inputNumber) is not neon number") }
标准输入
Please enter the number- 9
输出
Entered number 9 is neon number
在上面的代码中,我们首先使用readLine()函数获取用户输入,这里是9。然后我们找到给定数字的平方,即81。现在,使用以下代码计算平方数的各位数字之和:8 + 1 = 9。
// Check if squareNumber is positive while(squareNumber > 0){ // Find the remainder of the squareNumber // Using mod 10 reminder = squareNumber % 10 // Add the remainder to the sum sum = sum + reminder // Now leave the last digit of the division // and store the value squareNumber = squareNumber / 10 }
上述代码的工作原理是:
squareNumber = 81
reminder = 0
sum = 0
while(81 > 0){
reminder = 81 % 10 = 1
sum = 0 + 1 = 1
squareNumber = 81 / 10 = 8.1 = 8
}
while(8 > 0){
reminder = 8 % 10 = 8
sum = 1 + 8 = 9
squareNumber = 8 / 10 = 0.8 = 0
}
现在使用if语句,我们检查得到的和是否等于输入值。如果和等于输入值,则打印输入数字是Neon数;如果和不等于输入值,则打印输入数字不是Neon数。
在我们的代码中,和等于输入值(即9 == 9),所以输出是“输入数字9是Neon数”。
示例2
以下程序演示如何在用户指定的输入范围内查找Neon数。
import Foundation import Glibc func checkingNeonNumber(inputNumber : Int) -> Bool{ var squareNumber = inputNumber * inputNumber var sum = 0 var reminder = 0 while(squareNumber > 0){ reminder = squareNumber % 10 sum = sum + reminder squareNumber = squareNumber / 10 } return (sum == inputNumber) } print("Please enter lower limit") var lowLimit = Int(readLine()!)! print("Please enter upper limit") var upperLimit = Int(readLine()!)! print("Neon numbers are:") for j in lowLimit...upperLimit{ if (checkingNeonNumber(inputNumber:j)){ print(j) } }
标准输入
Please enter lower limit 1 Please enter upper limit 100
输出
Neon numbers are: 1 9
在上面的代码中,我们首先创建一个名为checkingNeonNumber()的函数。此函数返回Neon数。查找Neon数的过程与我们在上述算法中讨论的相同。之后,我们使用readLine()函数从用户处获取下限和上限。这里,下限和上限表示我们将查找所有Neon数的范围的起始点和结束点。现在,我们使用for循环迭代从下限到上限的循环,并使用checkingNeonNumber()检查每个数字是否为Neon数,如下面的代码所示:
for j in lowLimit...upperLimit{ if (checkingNeonNumber(inputNumber:j)){ print(j) } }
并显示在给定范围(1到9)内的Neon数列表。