weixin_41732959 2022-11-01 14:48 采纳率: 0%
浏览 16

C++ “最大公约数”函数的递归返回值问题

C++ “最大公约数”函数的递归返回值问题
#include <iostream>
using namespace std;
int GCD(int a, int b)
{
    if (a%b==0)    return b;
    else GCD(b,a%b);
    
}
int main()
{
    
    int a,b;
    cin >>a >>b;
    if (a>=b) cout <<GCD(a,b) <<endl;
    else cout <<GCD(b,a) <<endl;
        
    return 0;
}

初学C++。在上北大郭炜大大的网课。
在做求最大公约数问题时,发现的问题。
请问在定义最大公约数函数时,为什么else后面也要加return?不加OJ上就报Runtime Error。但我在单机测试时能返回正确答案。

int GCD(int a, int b)
{
if (a%b==0) return b;
else GCD(b,a%b);
}

img

测试了要多次计算的列子,结果也是对的:
(12921,4234)=(4234,219)
(4234,219)=(219,73)
(73,0)

img

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-11-01 14:54
    关注

    不加return,等于最外层的GCD函数没有返回值,那外部就得不到返回值

    评论

报告相同问题?

问题事件

  • 修改了问题 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 欧拉系统opt目录空间使用100%
  • ¥15 ul做导航栏格式不对怎么改?
  • ¥20 用户端如何上传图片到服务器和数据库里
  • ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
  • ¥30 vivado封装时总是显示缺少一个dcp文件
  • ¥100 pxe uefi启动 tinycore
  • ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
  • ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
  • ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
  • ¥15 疾病的获得与年龄是否有关