我是靠谱客的博主 轻松仙人掌,这篇文章主要介绍来来来 我们来编写一个函数来实现n^k,使用递归实现,现在分享给大家,希望可以做个参考。

编写一个函数实现n^k,使用递归实现
首先 我们来  理性的(夏基霸)分析一波
n的k次方那不就是n*n*n*n*n*n*....*n(共k个)
有同学会问
那么这个时候我们该怎么做?
问得好
我也不知道
我们试验一下 
猜想  各种骚操作从脑中划过
变个型 变成n*n^k-1 怎么样
我也不知道为什么要变成这个样子
反正感觉好像离求解正确不远了
附加一个递归使用的三要素
(1)条件限制
用if条件进行限制,在某一状态下进行递归调用自身
(2)条件逼近
通过一步步的递归调用,应该向if判断条件的方向逼近
以停止递归(找到递归的终点)
(3)将大化小
每次递归的都要将一个大的问题划分成子问题
思考了这么多  是时候了
naroto  一克嗖!
1、递归法
#include <stdio.h>
#include <math.h>
int  my_pow(int n,int k)
{
	if (k == 0)
	{
		return 1;
	}
	if (k == 1)
	{
		return n;
	}
	return my_pow(n , k - 1)*n;
}
int main()
{
	int n = 0;
	int k = 0;
	printf("请输入n和kn");
	scanf("%d%d",&n,&k);
	printf("%dn",my_pow(n,k));
return 0;
}
2、迭代法
数据量较大的时候比递归速度快
#include <stdio.h>
#include <math.h>
int my_ine(int n,int k)//迭代
{
	int q = n;
	int p = k - 1;
	if ( k == 0 )
	{
		return 1;
	}
	while ( p-- )
	{
		n = n * q;
	}
	return n;
}
int main()
{
	int n = 0;
	int k = 0;
	printf("请输入n和kn");
	scanf("%d%d",&n,&k);
	printf("%dn",my_ine(n,k));
return 0;
}

 

最后

以上就是轻松仙人掌最近收集整理的关于来来来 我们来编写一个函数来实现n^k,使用递归实现的全部内容,更多相关来来来内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(124)

评论列表共有 0 条评论

立即
投稿
返回
顶部