使用k作为边界条件,n * my_pow(n, k - 1)为运算式,直到k递减为1是递归开始返回,依次与前一个n相乘。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//递归方式
int my_pow(int n, int k)
{
if (k == 1)
{
return n;
}
return n * my_pow(n, k - 1);
}
//非递归方式
int my_pow1(int n, int k)
{
int i = 0;
int tmp = 1;
for (i = 1; i <= k; i++)
{
tmp = tmp * n;
}
return tmp;
}
int main(void)
{
int n = 0;
int k = 0;
int ret = 0;
printf("请输入两个数: ");
scanf("%d %d", &n, &k);
ret = my_pow1(n, k);
printf("%d\n", ret);
printf("\n");
system("pause");
return 0;
}

本文介绍了一种使用递归和非递归方式实现幂运算的方法。通过定义函数my_pow和my_pow1,分别采用递归调用和循环迭代的方式计算n的k次方,展示了两种不同的算法实现过程。

6118

被折叠的 条评论
为什么被折叠?



