使用函式顯示區間內阿姆斯特朗數的 Swift 程式
本教程將討論如何編寫 Swift 程式,使用函式顯示區間內的阿姆斯特朗數。
如果一個數的每個數字的 n 次冪之和等於該數本身,則這種型別的數稱為阿姆斯特朗數。
例如,我們有一個數 407,這裡 n = 3
407 = 43 + 03 + 73
407 = 64 + 0 +343
407 = 407
因此 407 是阿姆斯特朗數
例如,我們還有另一個數 2346,這裡 n = 4
2346 = 24 + 34 + 44 + 64
2346 = 16 + 81 + 256 + 1296
2346 = 1649
因此 2346 不是阿姆斯特朗數。
以下是相同的演示 -
輸入
假設我們的給定輸入為 -
LowerLimit = 1 UpperLimit = 200
輸出
所需的輸出將是 -
Armstrong Numbers are 1, 153
演算法
以下是演算法 -
步驟 1 - 建立一個函式
步驟 2 - 從下限到上限執行一個 for 迴圈以迭代每個元素。
步驟 3 - 宣告另一個變數來儲存總和。
步驟 4 - 宣告一個變數來儲存給定數字中存在的數字總數。
步驟 5 - 統計給定數字中存在的數字總數 -
while(armNum != 0){
armNum = armNum/10
count = count + 1
}
步驟 6 - 計算給定數字的各個數字的冪之和
let rem = armNum % 10 sum = sum + (rem * rem * rem) armNum = armNum/10
步驟 7 - 將總和與數字本身進行比較。如果總和和數字相等,則該數字是阿姆斯特朗數。否則不是。
步驟 8 - 宣告兩個變數來儲存下限和上限。
步驟 9 - 呼叫函式並將下限和上限作為引數傳遞。
步驟 10 - 列印輸出。
示例
以下程式演示瞭如何使用函式顯示兩個區間之間的阿姆斯特朗數。
import Foundation import Glibc // Function to find the Armstrong number // in between the given intervals func findArmstrongNumber(interval1: Int, interval2: Int){ for q in interval1..<interval2{ var sum = 0 var armNum = q // Calculate the sum of 3rd power // of individual digit the given number while (armNum != 0){ let rem = armNum % 10 sum = sum + (rem * rem * rem) armNum = armNum/10 } // If the sum is equal to the given number // Then the number is Armstrong number if (sum == q){ print(q) } } } var lower = 1 var upper = 1000 print("Lower Limit:", lower) print("Upper Limit:", upper) print("Armstrong numbers are:") // Calling function findArmstrongNumber(interval1: lower, interval2: upper)
輸出
Lower Limit: 1 Upper Limit: 1000 Armstrong numbers are: 1 153 370 371 407
在這裡,在上面的程式碼中,我們有兩個區間,下限為 1,上限為 600。現在我們建立一個函式來查詢 3 位數的阿姆斯特朗數。在這個函式中,使用 for 迴圈,我們迭代給定範圍內的每個數字,並找到該數字的各個數字的總和。計算完總和後,我們透過相互比較來檢查總和是否等於給定數字。如果總和等於數字,則該數字為阿姆斯特朗數,並列印輸出。因此,上面程式碼的工作原理是 -
findArmstrongNumber(interval1: 1, interval2: 1000):
1st iteration:
Sum = 0
armNum = 1
while (1 != 0){
let rem = 1 % 10 = 1
sum = 0 + (1 * 1 * 1) = 1
armNum = armNum/10 = 1/10 = 0
}
Sum = 1
if (1 == 1) // Condition true{
print(1)
}
2nd iteration:
Sum = 1
armNum = 2
while (2 != 0){
let rem = 2 % 10 = 2
sum = 0 + (2 * 2 * 2) = 8
armNum = armNum/10 = 2/10 = 0
}
Sum = 8
if (8 == 2) // Condition False{
print() // Print nothing
}
….. iterate till 999.
查詢 n 位阿姆斯特朗數
示例
以下程式演示瞭如何使用函式顯示兩個區間之間的阿姆斯特朗數。
import Foundation import Glibc // Function to find armstring number func FindArmstrong(lower: Int, upper: Int){ for q in lower..<upper{ var sum = 0 var armNum = q var count = 0 // Count the total number of digits // present in the given number while(armNum != 0){ armNum = armNum/10 count = count + 1 } armNum = q // Calculate the sum of nth power // of individual digits of the given number while (armNum != 0){ let rem = armNum % 10 sum = sum + Int(pow(Double(rem), Double(count))) armNum = armNum/10 } // If the sum is equal to the given number // Then the number is Armstrong number if (sum == q){ print(q) } } } var interval1 = 1000 var interval2 = 10000 print("Lower Limit:", interval1) print("Upper Limit:", interval2) print("Armstrong numbers are:") FindArmstrong(lower: interval1, upper: interval2)
輸出
Lower Limit: 1000 Upper Limit: 10000 Armstrong numbers are: 1634 8208 9474
在這裡,在上面的程式碼中,我們有兩個區間,下限為 1000,上限為 10000。現在我們建立一個函式來查詢 n 位阿姆斯特朗數。在這個函式中,使用 for 迴圈,我們迭代給定範圍內的每個數字以檢查是否為阿姆斯特朗數。因此,要查詢阿姆斯特朗數,我們首先計算數字中存在的數字總數。之後,我們找到數字的各個數字的 n 次冪之和。現在,在計算完總和後,我們透過相互比較來檢查總和是否等於給定數字。如果總和等於數字,則該數字為阿姆斯特朗數,並列印輸出。因此,1000 到 10000 之間的阿姆斯特朗數為 1634、8208 和 9474。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP