**n^k : k个n相乘
eg : 2 ^ 3 =2 * 2 * 2 = 8
使用递归可以很容易实现。
首先列出特殊情况,当k = 1 时 和 当 k = 0时的情况。
k = 1 时 结果无疑是 n 本身了, k = 0 ,任何数的零次方为1.
知道了这些之后我们开始写代码吧!
int print(int n,int k)
{
if( k == 0) //当 k = 0 时
return 1; // 返回1
else if(k == 1) // 当k = 1 时
return n; //返回 n 本身
else
return n * print(n,k-1); //其他情况时,使用递归
}
int main()
{
int n = 0;
int k = 0;
int ret;
printf("请输入n:");
scanf("%d",&n);
printf("请输入k:");
scanf("%d",&k);
ret = print(n,k);
printf("阶乘为:%d\n",ret);
system("pause");
return 0;
}
运行结果: