使用递归实现n^k

**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 = 0return 1;      //   返回1
    else if(k == 1)     // 当k = 1return 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;
    }

运行结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41420688/article/details/80286356