【数据结构与算法分析】2.3 求X的N次幂

来源:互联网 发布:python 卷积 编辑:程序博客网 时间:2024/06/07 03:10

问题描述:

这还描述啥

解决思路:

递归,递推,以及logn的解法,第三种解法中,若n为偶数,x*n = x*(n/2)*x*(n/2);若n为奇数,x*n=x*(n/2)*x*(n/2)*x;

算法实现:

#include<stdio.h>double recursion(double x, int n);double recurrence(double x, int n);double logn(double x, int n);int main() {        double x;        int n;        while(scanf("%lf%d",&x,&n)){                printf("%lf\n",recursion(x,n));                printf("%lf\n",recurrence(x,n));                printf("%lf\n",logn(x,n));        }        return 0;}double recursion(double x,int n) {        if(n == 0)                return 1;        if(n == 1)                return x;        return recursion(x,n-1)*x;}double recurrence(double x,int n) {        if(n == 0)                return 1;        if(n == 1)                return x;        int i;        int result = x;        for(i = 2;i<=n;i++){                result = result * x;        }        return result;}double logn(double x,int n) {        if(n == 0)                return 1;        if(n == 1)                return x;        if(n % 2 == 0)                return logn(x*x,n/2);   else                return logn(x*x,n/2)*x;}




0 0