整数反转
https://leetcode.cn/problems/reverse-integer/description/
class Solution {
public:int reverse(int x) {int MAX_LENGTH = 11; // 32位整数的最大数字的位数int* num = (int*)calloc(sizeof(int), MAX_LENGTH); //用于保存进位每一位的数字int current = x;int pos = 0;while (current != 0 && pos < MAX_LENGTH) {num[pos] = current % 10;current = current / 10;pos++;}if (pos == MAX_LENGTH) {return 0;}int new_pos = 1;int new_num = num[0];int highest_carry = 10;while (new_pos < pos) {long after = new_num;after = after * 10 + num[new_pos];// 若进位发生了变化,那么返回0,说明出现了溢出,if (after % highest_carry != num[new_pos]) {return 0;} else {new_num = after;}if (after == 0) {highest_carry *= 10;} else {highest_carry = after * 10;}new_pos++;}return new_num;}
};