鱼C论坛

 找回密码
 立即注册
查看: 1173|回复: 4

[已解决]递归运算计算幂

[复制链接]
发表于 2024-4-16 16:40:17 | 显示全部楼层
你的代码基本上是正确的,只是需要对函数返回类型进行修改。因为结果可能是小数,所以将返回类型改为double。另外,要注意y为0的情况,应该返回1而不是0。

修改后的代码如下:

  1. #include <stdio.h>

  2. double power(int x, int y)
  3. {
  4.         if (y == 1)
  5.         {
  6.                 return x;
  7.         }
  8.         else if (y == 0)
  9.         {
  10.                 return 1;
  11.         }
  12.         else
  13.         {
  14.                 if (y % 2 == 0)
  15.                 {
  16.                         return power(x, y / 2) * power(x, y / 2);
  17.                 }
  18.                 else
  19.                 {
  20.                         return x * power(x, y - 1);
  21.                 }
  22.         }
  23. }

  24. int main()
  25. {
  26.         int a, b;
  27.         scanf("%d%d", &a, &b);
  28.         printf("%lf", power(a, b));
  29.         return 0;
  30. }
复制代码


现在你可以输入两个整数,然后程序会计算并打印出幂的值。注意,这里使用`%lf`来输出double类型的值。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-28 11:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表