概述
编写一个函数实现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,使用递归实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复