Kotlin程式:檢查兩個整數之間的阿姆斯特朗數


在本文中,我們將瞭解如何在Kotlin中顯示給定兩個數字之間的阿姆斯特朗數。阿姆斯特朗數是一個等於其自身數字立方和的數字。例如,153是

153 = (1)3 + (5)3 + (3)3

以下是相同的演示

假設我們的輸入是

1 & 500

期望的輸出將是

The Armstrong numbers between 1 and 500 are 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407

演算法

  • 步驟1 − 開始

  • 步驟2 − 宣告四個整數:inputLow、inputHigh、originalNumber和myResult

  • 步驟3 − 定義inputLow和inputHigh的值

  • 步驟4 − 讀取值

  • 步驟5 − 執行for迴圈,使用%、/和*運算子生成阿姆斯特朗數

  • 步驟6 − 除以10並獲得'originalNumber'的餘數。

  • 步驟7 − 將'餘數'乘以三次,加到'myResult'中,並將其設為當前'myResult'。

  • 步驟8 − 將'originalNumber'除以10,並將其設為當前'originalNumber'。

  • 步驟9 − 顯示結果

  • 步驟10 − 結束

示例1

在這個例子中,我們將檢查Kotlin中兩個整數之間的阿姆斯特朗數。首先,宣告並設定兩個變數。這是我們將查詢阿姆斯特朗數的範圍:

val inputLow = 1
val inputhigh = 500

現在,使用for迴圈內的while迴圈來查詢範圍內的阿姆斯特朗數

for (number in inputLow + 1..inputhigh - 1) { var tempDigits = 0 var myResult = 0 var originalNumber = number while (originalNumber != 0) { originalNumber /= 10 ++tempDigits } originalNumber = number while (originalNumber != 0) { val remainder = originalNumber % 10 myResult += Math.pow(remainder.toDouble(), tempDigits.toDouble()).toInt() originalNumber /= 10 }

現在讓我們看看查詢阿姆斯特朗數的完整示例

fun main() { val inputLow = 1 val inputhigh = 500 println("The lower and higher limit are defined as $inputLow and $inputhigh ") println("The Armstrong numbers are:") for (number in inputLow + 1..inputhigh - 1) { var tempDigits = 0 var myResult = 0 var originalNumber = number while (originalNumber != 0) { originalNumber /= 10 ++tempDigits } originalNumber = number while (originalNumber != 0) { val remainder = originalNumber % 10 myResult += Math.pow(remainder.toDouble(), tempDigits.toDouble()).toInt() originalNumber /= 10 } if (myResult == number) print("$number ") } }

輸出

The lower and higher limit are defined as 1 and 500
The Armstrong numbers are:
2 3 4 5 6 7 8 9 153 370 371 407

示例2

在這個例子中,我們將獲得兩個整數之間的阿姆斯特朗數

fun main() { val inputLow = 1 val inputhigh = 500 println("The lower and higher limit are defined as $inputLow and $inputhigh ") printArmstrongNumbers(inputLow, inputhigh) } fun printArmstrongNumbers(inputLow: Int, inputhigh: Int) { println("The Armstrong numbers are:") for (number in inputLow + 1..inputhigh - 1) { var tempDigits = 0 var myResult = 0 var originalNumber = number while (originalNumber != 0) { originalNumber /= 10 ++tempDigits } originalNumber = number while (originalNumber != 0) { val remainder = originalNumber % 10 myResult += Math.pow(remainder.toDouble(), tempDigits.toDouble()).toInt() originalNumber /= 10 } if (myResult == number) print("$number ") } }

輸出

The lower and higher limit are defined as 1 and 500
The Armstrong numbers are:
2 3 4 5 6 7 8 9 153 370 371 407

更新於:2022年10月13日

694 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.