我现在正在编程一段时间(初学者),递归函数对我来说是一个有点抽象的概念.我不会说我卡住了,程序运行正常,我只是想知道函数本身是否可以在代码中没有pow函数的情况下编写(但仍然正是在做问题所表明的)
我的解决方案
#include<stdio.h>
#include<math.h>
int power(int, int);
int main(void)
{
int x, n;
printf("Enter a number and power you wish to raise it to: ");
scanf_s("%d %d", &x, &n);
printf("Result: %d\n", power(n, x));
return 0;
}
int power(int x, int n)
{
if (n == 0) return 1;
if (n % 2 == 0) return pow(power(x, n / 2), 2);
else return x * power(x, n - 1);
}
Run Code Online (Sandbox Code Playgroud)
我试过这样做:power(power(x,n - 1),2); 但是执行失败了,我仍在回溯原因.