我是靠谱客的博主 轻松仙人掌,最近开发中收集的这篇文章主要介绍来来来 我们来编写一个函数来实现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,使用递归实现的全部内容,希望文章能够帮你解决来来来 我们来编写一个函数来实现n^k,使用递归实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部