/*函数实现n^k,使用递归实现*/
#include<stdio.h>
#include<math.h>
int func(unsigned int n, unsigned int k)
{
if (k == 0)
return 1;//结束条件
else{
if (k == 1)
return n;//结束条件
else
return n*func(n, k - 1);//递归调用
}
}
int main(void)
{
printf("%d\n", func(2, 3));
return 0;
}
优化:
#include<stdio.h>
#include<math.h>
int func(unsigned int n, unsigned int k)
{
if (k == 0)
return 1;//结束条件
else
return n*func(n, k - 1);//递归调用
}
int main(void)
{
printf("%d\n", func(2, 3));
printf("%d\n", func(3, 4));
return 0;
}