1、递归求和
int sum(int szArray[], int nIndex, int nLen) { if (nIndex == nLen - 1) { return szArray[nIndex]; } return szArray[nIndex] + sum(szArray, nIndex + 1, nLen); } int sum2(int szArray[], int n) { if (n == 0) { return 0 ; } return szArray[n - 1] + sum2(szArray, n - 1); }
2、递归求幂指数
int power2(int n) { if (0 == n) return 1; return 2 * power2(n - 1); }
优化:时间复杂度降低
int sqr(int a) { return a * a; } int opt_power2(int n) { if (0 == n) return 1; return (n % 2 == 1) ? 2 * sqr(opt_power2(n / 2)) : sqr(opt_power2(n / 2)); }