递归函数实现阶乘
万恶的期中考试和英语四级结束了,终于又能愉快地写博客啦。
函数递归可以执行循环的功能,控制量,初始量,变化量。
return函数的使用,将上一个函数的结果传递给这个函数,明白分步执行的需要完成的是什么,我对函数递归的理解还远远不够,以后多多做这种题
#include <stdio.h>
#include <math.h>
long long power(int x,int n)
{
if(n==0) return 1;//return 语句执行不会执行下面的语句
return x*power(x,n-1);
}
//改进power算法,幂可以写成x的n/2的平方,对于不能整除2的写成x*x的n-1次方,这种算的次数更少
long long power(int x,int n)
{
if(n==0) return 1;
if(n%2==0) return power(x*x,n/2);
if(n%2!=0) return x*power(x*x,(n-1)/2);
}
int main()
{
int x,n;
scanf("%d %d",&x,&n);
printf("%ld",power(x,n));
}

浙公网安备 33010602011771号