|
|
发表于 2023-4-1 22:34:11
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
int fun(int x,int y)
{
if(x==1)
return x;
else
return x*fun(x,y-1);
}
void main()
{
int x,n;
scanf("%d%d",&x,&n);
printf("%d",fun(x,n));
}
用递归实现x的n次,我这个代码没有输出结果求大佬帮忙看看。
在你的递归函数中,你需要检查y的值,而不是x。请参考以下修改后的代码:
- #include <stdio.h>
- int fun(int x, int y) {
- if (y == 0) { // 修改了这里
- return 1;
- } else {
- return x * fun(x, y - 1);
- }
- }
- int main() {
- int x, n;
- scanf("%d%d", &x, &n);
- printf("%d\n", fun(x, n));
- return 0;
- }
复制代码
这个修改后的代码将实现你想要的功能:计算 x 的 n 次幂。
递归函数现在检查 y 是否等于 0,当 y 等于 0 时返回 1(因为任何数的 0 次幂都是 1)。当 y 不等于 0 时,函数将 x 乘以 fun(x, y-1) 的结果。
|
评分
-
查看全部评分
|