合抱之木,生于毫末;九層之臺,起于累土;千里之行,始于足下。💪🏻
一、題目描述 ??
二、代碼(C語言)??
#include <stdio.h>int reverse( int number );int main()
{int n;scanf("%d", &n);printf("%d\n", reverse(n));return 0;
}/* 你的代碼將被嵌在這里 */
#include <math.h>
int reverse( int number ) {int numArr[100]; // 定義一個數組,用于存儲數字的每一位int cnt = 0; // 計數器,用于記錄數字的位數,初始值為0int flag = 0; // 標志位,用于控制是否允許輸出,0-不允許,1-允許int temp = 0; // 臨時變量,用于存儲最初的number值int result = 0; // 最終結果// 如果number是負數,先將其轉換成正數進行處理if(number < 0) {temp = number; // 將未處理的number賦值給臨時變量tempnumber *= -1; // 將負數轉換成正數}// 依次將number的個位、十位、百位等數字存入numArr數組中while(number != 0) {numArr[cnt] = number % 10; // 取出當前最低位的數字cnt++; // 計數器加1,記錄位數number /= 10; // 去掉已經處理的最低位}// 遍歷numArr數組,將數字重新組合成反轉后的整數for(int i = 0; i < cnt; i++) {// 找到第一個不為0的數字后,允許輸出處理if(numArr[i] != 0) {flag = 1; // 設置標志位為1,允許輸出}// 如果允許輸出,則將當前數字乘以相應的10的冪次方并累加到結果中if(flag == 1) {result += (numArr[i] * pow(10,cnt - i - 1));}}// 如果最初的number是負數,則將結果轉換回負數形式if(temp < 0) {result *= -1;}// 返回最終的反轉結果return result;
}
?