编写一个函数实现n的k次方,使用递归实现。
输入:2 3
输出:8
思考:当输入k=0时,结果应该为1;但if和else各自的语句块会因为k值相互制约,因此要细心思考k的临界值,才能避免bug产生
#include<stdio.h>
int Higher_order(int n,int k)
{
if (k == 0)
{
return 1;
}
else
{
return n * Higher_order(n, k-1);
//当这里是k-1时才能得到0次方,同时k=0时才可以return 1
}
}
int main()
{
int n = 0;
int k = 0;
printf("请输入n:>");
scanf("%d", &n);
printf("\n几次方?:>");
scanf("%d", &k);
int ret = Higher_order(n,k);
printf("%d\n", ret);
return 0;
}