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

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告