对分查找的循环与递归

来源:互联网 发布:学python还要学hadoop 编辑:程序博客网 时间:2024/05/16 03:24
/** \brief 
 *   对分查找

 */


/** \brief 
 *   对分查找
 */     




#include <stdio.h>
#include <stdlib.h>


int main()
{
    long int Pow(long x, unsigned int n);
    long int Pow1(long x, unsigned int n);


    long x;
    unsigned int n;


    x = 2;
    n =11;


    printf("%ld\n", Pow(x, n));
    return 0;
}




long int Pow(long x, unsigned int n)
{
    if (n == 0)
        return 1;
    if (n == 1)
        return x;
    if (n % 2 == 0)
        return Pow(x*x, n/2);
    else
        return Pow(x*x, n/2) * x;
}


/*long int Pow1(long x, unsigned int n)
{
    long y[100];
    int i = 0;
    while (n != 1) {
        if (n % 2 == 0)
            x = x*x;
        else {
            y[i++] = x;
            x = x*x;
        }
        n /= 2;
    }


    for (i--; i >= 0; i--)
        x *= y[i];
    return x;
}*/     

0 0
原创粉丝点击