# Kotlin 程序：检查数字是否为回文

> 原文： [https://www.programiz.com/kotlin-programming/examples/palindrome-number](https://www.programiz.com/kotlin-programming/examples/palindrome-number)

#### 在此程序中，您将学习检查 Kotlin 中的数字是否为回文数。 这是通过使用 while 循环完成的。

## 示例：回文检查程序

```kt
fun main(args: Array<String>) {
    var num = 121
    var reversedInteger = 0
    var remainder: Int
    val originalInteger: Int

    originalInteger = num

    // reversed integer is stored in variable
    while (num != 0) {
        remainder = num % 10
        reversedInteger = reversedInteger * 10 + remainder
        num /= 10
    }

    // palindrome if orignalInteger and reversedInteger are equal
    if (originalInteger == reversedInteger)
        println("$originalInteger is a palindrome.")
    else
        println("$originalInteger is not a palindrome.")
}
```

运行该程序时，输出为：

```kt
121 is a palindrome.
```

**注意**：可以将`num`的值更改为 11221，并且在运行程序时，输出为：

```kt
11221 is not a palindrome.
```

以下是等效的 Java 代码：[用于检查回文数的 Java 程序](/java-programming/examples/palindrome-number "Java Program to Check Whether a Number is Palindrome or Not")

在这个程序中

*   首先，给定数字（`num`）的值存储在另一个整数变量`originalInteger`中。 这是因为，我们需要在最后比较反向编号和原始编号的值。
*   然后，使用`while`循环循环遍历`num`，直到等于 0。
    *   在每次迭代中，`num`的最后一位存储在`remainder`中。
    *   然后，将`remainder`添加到`reversedInteger`，以便将其添加到下一个位置值（乘以 10）。
    *   然后，除以 10 后，从`num`中删除最后一位数字。
*   最后，比较`reversedInteger`和`originalInteger`。 如果相等，则为回文数。 如果不是，则不是。

以下是执行的步骤：

回文执行步骤

| `num` | `num != 0` | `remainder` | `reversedInteger` |
| --- | --- | --- | --- |
| 121 | `true` | 1 | `0 * 10 + 1 = 1` |
| 12 | `true` | 2 | `1 * 10 + 2 = 12` |
| 1 | `true` | 1 | `12 * 10 + 1 = 121` |
| 0 | `false` | - | 121 |