1 条题解

  • 0
    @ 2025-10-30 16:51:17

    思路分析

    1. 任务拆解:

    • 读取两个自然数a和b
    • 计算它们的最大公约数
    • 输出结果

    2. 关键点分析:

    • 使用辗转相除法(欧几里得算法)
    • 算法原理:gcd(a,b) = gcd(b, a mod b)
    • 当余数为0时,当前的除数就是最大公约数

    3. 步骤规划:

    • 读取a和b的值
    • 循环计算:
      • 计算a除以b的余数
      • 如果余数为0,结束循环
      • 否则将b赋值给a,余数赋值给b
    • 输出b作为最大公约数

    4. 代码对应:

    • cin>>a>>b; → 读取两个整数
    • while(true) → 辗转相除循环
    • int y=a%b; → 计算余数
    • if(y==0) break; → 余数为0时结束循环
    • a=b; b=y; → 更新a和b的值
    • cout<<b; → 输出最大公约数
    • 1

    信息

    ID
    89
    时间
    1000ms
    内存
    16MiB
    难度
    3
    标签
    (无)
    递交数
    419
    已通过
    228
    上传者