错误写法:
int rec(int a,int b) {
for (int i = 0; i < b; i++)
{
return a * rec(a, b - 1);
}
}
int main() {
int n;
int k;
scanf("%d %d", &n, &k);
int t = rec(n, k);
printf("%d", t);
return 0;
}
虽然递归是需要设置条件,但不是用for循环,应该思考最后到1,或者0的时候结果是多少,因此正确的代码应该是:
int power(int n, int k) {
if (k == 0) {
return 1;
} else {
return n * power(n, k - 1);
}
}
int main() {
int n, k;
printf("请输入底数n:");
scanf("%d", &n);
printf("请输入指数k:");
scanf("%d", &k);
int result = power(n, k);
printf("%d的%d次方结果为:%d\n", n, k, result);
return 0;
}