/************************************************************************/ /* 2-10进制转换递归实现 */ /************************************************************************// #include <stdio.h> int to_base_n(int, int); int main() { to_base_n(100, 8); getch(); return 0; } int to_base_n(int Num, int p) { int r; if (p < 2 && p > 10) { return ; } r = Num % p; if (Num >= p) { to_base_n(Num/p, p); } putchar('0' + r); return ; }
/************************************************************************/ /* 负数或正数的次幂运算 递归实现 */ /************************************************************************/ #include <stdio.h> double power(double, int); int main() { printf("%f", power(-5,1)); getch(); return 0; } double power(double n, int p) { if (p == 0) { return 1; } else { return n * power(n, p-1); } }
递归是种很有意思的算法,有人说:“为了理解递归,则必须首先理解递归”。
我觉得递归很利于解决一些复杂的问题,只要你设定好了条件。缺点就是执行效率低,昨天看了这个斐波那契数列用递归算法。算了一下,确实得不偿失。