在C语言中,输入一个五位数,然后使用函数的递推写出其的逆序数
参考如下:
#include<stdio.h>
#include<math.h>
int reverse(int n) {
// 个位数,直接返回本身
if (n < 10) {
return n;
} else {
// n % 10 表示 n 的 最后一位数 ,比如 n = 12345,则 n % 10 = 5
// pow(10, (int)log10(n)) 10的 (int)log10(n)次方,比如 12345 ,则 pow(10, (int)log10(n)) = 10^4
// reverse(n / 10) 递归计算倒数第二位 ,并累加
return (n % 10) * pow(10, (int)log10(n)) + reverse(n / 10);
}
}
int main() {
int n;
scanf("%d", &n);
printf("%d", reverse(n));
return 0;
}
很多朋友可能会想,为什么不像普通函数调用那样,在回调的地方直接写函数的名字呢?这样不也可以吗?为什么非得用回调函数呢?有这个想法很好,因为在网上看到解析回调函数的很多例子,其实完全可以用普通函数调用来实现的。要回答这个问题,我们先来了解一下回到函数的好处和作用,那就是解耦,对,就是这么简单的答案,就是因为这个特点,普通函数代替不了回调函数。来看看维基百科上面我觉得画得很好的一张图片。