# C 程序：使用递归计算幂

> 原文： [https://www.programiz.com/c-programming/examples/power-recursion](https://www.programiz.com/c-programming/examples/power-recursion)

#### 在此示例中，您将学习使用递归来计算数字的幂。

要理解此示例，您应该了解以下 [C 编程](/c-programming "C tutorial")主题：

*   [C 函数](/c-programming/c-functions)
*   [C 用户定义的函数](/c-programming/c-user-defined-functions)
*   [C 递归](/c-programming/c-recursion)

* * *

## 使用递归计算幂的程序

```c
#include <stdio.h>
int power(int n1, int n2);
int main() {
    int base, a, result;
    printf("Enter base number: ");
    scanf("%d", &base);
    printf("Enter power number(positive integer): ");
    scanf("%d", &a);
    result = power(base, a);
    printf("%d^%d = %d", base, a, result);
    return 0;
}

int power(int base, int a) {
    if (a != 0)
        return (base * power(base, a - 1));
    else
        return 1;
} 
```

**输出**

```c
Enter base number: 3
Enter power number(positive integer): 4
3^4 = 81 
```

您也可以使用循环[计算数字的幂](https://www.programiz.com/c-programming/examples/power-number)。

如果需要计算升到十进制值的数字的幂，可以使用[`pow()`函数](https://www.programiz.com/c-programming/library-function/math.h/pow)。