码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【代码+详解】算法题 : 最大公约数


    ❗❗❗必看:
    下列题我全部都使用 Java 语言写的,并且均可以提交成功,获得Accepted 结果的. 如果代码和详解看了之后,对答案有任何疑问,都可以在评论区提出来,我都会一个一个回答.

    ❗❗❗感谢大家的支持,如果喜欢我的博客,关注 点赞 收藏 评论一波,非常感谢!!!

    文章目录

    • 题目:最大公约数
      • 样例测试
      • 代码
      • 图示
      • 详解
        • 基本思想
        • 具体步骤
        • 代码解释

    题目:最大公约数

    给定两个正整数,求它们的最大公约数。

    Input

    有多组数据,每行为两个正整数,且不超过int可以表示的范围。

    Output

    行对应输出最大公约数。

    样例测试

    输入

    4 8
    8 6
    200 300

    输出

    4
    2
    100


    代码

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner scanner = new Scanner(System.in);
    		
    		while(scanner.hasNextInt()) {
    			int a = scanner.nextInt();
    			int b = scanner.nextInt();
    			System.out.println(gcd(a,b));
    		}
    		
    		 scanner.close();
    		
    	}
    
    	private static int gcd(int a, int b) {
    		while(b!=0) {
    			int temp = b;
    			b = a%b;
    			a = temp;
    		}
    
    		return a;
    	}
    
    }
    

    图示

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    详解

    这道题目我们可以通过欧几里得算法(也称辗转相除法)来解决。这是一种求两个正整数最大公约数(GCD)的高效算法。

    基本思想

    这道题目我们可以通过欧几里得算法(也称辗转相除法)来解决。这是一种求两个正整数最大公约数(GCD)的高效算法。

    两个数的最大公约数等于其中较小的那个数和两个数相除余数的最大公约数。

    具体步骤

    1. 用较大数除以较小数,得到余数。
    2. 若余数不为0,则用较小数和余数继续上述步骤,直到余数为0。
    3. 余数为0时,较小数即为两个数的最大公约数。

    代码解释

    1. 输入处理:
      • 使用 Scanner 类从标准输入中读取多组整数对。
      • 通过 scanner.hasNextInt() 循环读取输入,直到没有更多整数。
    2. 欧几里得算法:
      • 定义一个 gcd 方法来计算两个整数的最大公约数。
      • 使用 while 循环,直到余数 b 为0。
      • 在循环内,使用变量 temp 保存当前余数 b,然后更新 b 为 a % b,再将 a 更新为 temp。
      • 当 b为0时,a即为最大公约数。
    3. 输出结果:
      • 每对整数计算完成后,直接输出结果。
  • 相关阅读:
    2024年【R1快开门式压力容器操作】模拟考试题及R1快开门式压力容器操作复审模拟考试
    每个人都应该去学写作
    PG::Covfefe
    操作系统 day10(调度的概念、层次、七状态模型)
    如何免费试用阿里云的视频画质增强服务50元额度
    python解释器之PyPy解释器
    Spring事务不生效的场景的解决方案
    Java 基本类型和包装类
    基于哈尔小波基的一维密度估计(Python)
    [前端进阶] 工程/工具篇
  • 原文地址:https://blog.csdn.net/weixin_75202470/article/details/139455220
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号