企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Kotlin 程序:检查阿姆斯特朗数 > 原文: [https://www.programiz.com/kotlin-programming/examples/armstrong-number](https://www.programiz.com/kotlin-programming/examples/armstrong-number) #### 在此程序中,您将学习检查给定的数字是否为阿姆斯特朗数字。 您将通过在 Kotlin 中使用`while`循环学习如何做到这一点。 一个正整数称为阿姆斯特朗数`n`,如果 ```kt abcd... = an + bn + cn + dn + ... ``` 对于 3 位的阿姆斯特朗数,每个数字的立方数之和等于数字本身。 例如: ```kt 153 = 1*1*1 + 5*5*5 + 3*3*3 // 153 is an Armstrong number. ``` ## 示例 1:检查 3 位数字的阿姆斯特朗数 ```kt fun main(args: Array<String>) { val number = 371 var originalNumber: Int var remainder: Int var result = 0 originalNumber = number while (originalNumber != 0) { remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), 3.0).toInt() originalNumber /= 10 } if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") } ``` 运行该程序时,输出为: ```kt 371 is an Armstrong number. ``` * 首先,给定数字(`num`)的值存储在另一个整数变量`originalNumber`中。 这是因为,我们需要在最后比较最终编号和原始编号的值。 * 然后,使用`while`循环循环遍历`originalNumber`,直到等于 0。 * 在每次迭代中,`num`的最后一位存储在`remainder`中。 * 然后,使用`Math.pow()`函数将`remainder`乘以 3(数字位数),并将其添加到`result`中。 此处,`remainder`被转换为`Double`,因为`pow`仅接受`Double`参数,并且其值再次转换回`Int` * 然后,除以 10 后,从`originalNumber`中删除最后一位数字。 * 最后,比较`result`和`num`。 如果相等,则为阿姆斯特朗数。 如果不是,则不是。 以下是等效的 Java 代码:[用于检查阿姆斯特朗数的 Java 程序](/java-programming/examples/armstrong-number "Java Program to Check Armstrong Number") * * * ## 示例 2:检查 n 位数字的阿姆斯特朗数 ```kt fun main(args: Array<string>) { val number = 1634 var originalNumber: Int var remainder: Int var result = 0 var n = 0 originalNumber = number while (originalNumber != 0) { originalNumber /= 10 ++n } originalNumber = number while (originalNumber != 0) { remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), n.toDouble()).toInt() originalNumber /= 10 } if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") }</string> ``` 在此程序中,我们使用了两个`while`循环。 第一个`while`循环用于计算`num`中的位数。 然后,将`originalNumber`恢复为给定的`num`。 然后,第二个`while`循环检查数字是否为阿姆斯特朗数。 访问此页面了解如何[显示两个间隔之间的所有阿姆斯特朗数](/kotlin-programming/examples/armstrong-number-interval "Display all armstrong numbers between two intervals")。