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数列表。

更新于:2022年8月1日

浏览量:182

开启你的职业生涯

完成课程获得认证

开始学习
广告