网站建设英文怎么说/杭州专业seo服务公司
这是普通递归的升级版,比普通的更高效。
利用指数的奇偶来乘,比如2^6 =(23)2;
下面是一张流程表
函数最终是返回当前函数体的值,返回完之后会继续执行下面的语句,直到执行本次函数之后才会返回上层函数
#include <stdio.h>double calc_pow(double x, int n);int main()
{double x;int n;scanf("%lf %d", &x, &n);printf("%.0f\n", calc_pow(x, n));return 0;
}
int i=1;
double calc_pow(double x, int n)
{printf("%f %d\n", x, n);//if(n==1) return x; //如果用这个判断的话,会少一个,如果n是0就不可以了if (n == 0)return 1;if (n % 2 == 0){//printf("%f %d\n", x, n);return calc_pow(x * x, n / 2);}else{//printf("%f %d\n", x, n);return calc_pow(x * x, n / 2) * x; //记住函数最终是返回当前函数的值,返回完之后会继续执行下面的语句,直到执行本次函数之后才会返回上层函数}
}