递归函数实现阶乘

万恶的期中考试和英语四级结束了,终于又能愉快地写博客啦。

函数递归可以执行循环的功能,控制量,初始量,变化量。
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));
	}
posted @ 2020-12-14 23:51  empty_thought  阅读(518)  评论(0)    收藏  举报