محاسبه‌ی توان به شیوه‌ی بازگشتی

یکی از مسئله‌هایی که به کمک الگوریتم‌های بازگشتی حل می‌شود، محاسبه‌ی توان است.شیوه‌های مختلفی برای پیاده‌سازی بازگشتی توان وجود دارد.

پیاده‌‌سازی الگوریتم‌ها

الگوریتم اول

int power(double a, int n) {
    if (n == 0)
        return 1;
    return power(a,n-1)*a;
}

الگوریتم دوم

int power (double a, int n) {
    if (n == 0)
        return 1;
    if (n % 2 == 0)
        return pow (power(a,n/2),2);
    else
        return a*pow (power(a,n/2),2);

در هر مرحله از بازگشت، مقدار توان نصف می‌شود و بنابراین زمان کل اجرای الگوریتم، (O(log n است.