1. 程式人生 > >【leetcode】7. Reverse Integer(C)

【leetcode】7. Reverse Integer(C)

Description:

Given a 32-bit signed integer, reverse digits of an integer.

Example1:

Input: 123 Output: 321

Example2:

Input: -123 Output: -321

Example3:

Input: 120 Output: 21

提交程式碼:

int reverse(int x) {
 //int正數最大2147483647 負數最大-2147483648
	int tmp=x,flag;
	int i=0,x_reverse=0,len=0;
	int nums[10]
; //是個正數 if (x > 0) { //將這個數存到一個數組裡面 while (tmp != 0) { nums[i++] = tmp % 10; tmp /= 10; len++; } //看有沒有越界 if (len == 10) { if (nums[0] > 2) return 0; else if (nums[0] == 2) { tmp = 0; for (i = 1; i <len; i++) tmp = tmp * 10 + nums[i]; if (tmp > 147483647
) return 0; } } tmp = 0; for (i = 0; i <len; i++) tmp = tmp * 10 + nums[i]; return tmp; } //是個負數 else { while (tmp != 0) { nums[i++] = -1*(tmp % 10); tmp /= 10; len++; } //看有沒有越界 if (len == 10) { if (nums[0] > 2) return 0; else if (nums[0] == 2) { tmp = 0; for
(i = 1; i <len; i++) tmp = tmp * 10 + nums[i]; if (tmp > 147483648) return 0; } } tmp = 0; for (i = 0; i <len; i++) tmp = tmp * 10 + nums[i]; return -1 * tmp; } }

執行結果: 在這裡插入圖片描述