用c语言 写一个递归函数int fun(int n),将正整数n反转。
时间: 2024-02-01 13:15:33 浏览: 95
以下是用 C 语言编写的递归函数,用于将正整数 n 反转:
```c
#include <stdio.h>
int fun(int n) {
if (n < 10) {
return n;
} else {
int digit = n % 10;
int newNum = fun(n / 10);
while (newNum >= 10) {
newNum /= 10;
}
return digit * power(10, numDigits(newNum)) + newNum;
}
}
int power(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
int numDigits(int n) {
int count = 0;
while (n > 0) {
count++;
n /= 10;
}
return count;
}
int main() {
int n = 12345;
printf("Original number: %d\n", n);
int reversed = fun(n);
printf("Reversed number: %d\n", reversed);
return 0;
}
```
可以看到,该函数使用了三个辅助函数:power 函数用于计算 10 的幂,numDigits 函数用于计算一个数字的位数,以及一个 while 循环,用于将新数字缩小到一位。
阅读全文