int wpp = 0;
while (num != 0) {
int last = num % 10; // 获取最后一位数字
wqq = wqq * 10 + last; // 将数字反向构建
num /= 10;
这段代码是一个常见的算法,用于将一个整数 `num` 反转其数字顺序。下面是逐步解释:
1. **初始化变量**:
- `int wqq = 0;`:声明一个整型变量 `wqq` 并初始化为0。这个变量将用于存储反转后的数字。
2. **循环条件**:
- `while (num != 0)`:这是一个循环,条件是 `num` 不等于0。只要 `num` 不为0,循环就会继续执行。
3. **获取最后一位数字**:
- `int last = num % 10;`:使用模运算符 `%` 来获取 `num` 的最后一位数字。例如,如果 `num` 是1234,那么 `last` 将是4。
4. **构建反转数字**:
- `wqq = wqq * 10 + last;`:将 `wqq` 变量乘以10(这相当于在数字的末尾添加一个0),然后加上 `last`。这样做是为了将 `last` 移动到 `wqq` 的末尾。例如,如果 `wqq` 目前是0,并且 `last` 是4,那么 `wqq` 将变为4。
5. **移除最后一位数字**:
- `num /= 10;`:将 `num` 除以10,这样可以去掉 `num` 的最后一位数字。例如,如果 `num` 是1234,那么在执行这步之后,`num` 将变为123。
### 完整示例
假设 `num` 的初始值是 `1234`,这个算法的执行过程如下:
- 第一次迭代:
- `last = 1234 % 10 = 4`
- `wqq = 0 * 10 + 4 = 4`
- `num = 1234 / 10 = 123`
- 第二次迭代:
- `last = 123 % 10 = 3`
- `wqq= 4 * 10 + 3 = 43`
- `num = 123 / 10 = 12`
- 第三次迭代:
- `last = 12 % 10 = 2`
- `wqq = 43 * 10 + 2 = 432`
- `num = 12 / 10 = 1`
- 第四次迭代:
- `last = 1 % 10 = 1`
- `wqq= 432 * 10 + 1 = 4321`
- `num = 1 / 10 = 0`
循环结束,因为 `num` 变为0。最终,`wqq` 的值是4321,这是原始数字1234的反转。