1 条题解
-
0
思路分析
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
- 1818
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 218
- 已通过
- 113
- 上传者