使用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;
}