码农知识堂 - 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. 输出结果:
      • 每对整数计算完成后,直接输出结果。
  • 相关阅读:
    Effective Modern C++[实践]->使用 override 关键字声明要重写的函数
    .net core 抛异常对性能影响的求证之路
    循环神经网络(RNN)
    2023自动化测试面试题(含答案)
    掌控安全学院SQL注入靶场
    76.C++ STL list容器
    yum提示Another app is currently holding the yum lock; waiting for it to exit...
    正则表达式绕过
    【Linux】特别篇--SMBus 协议
    一文看懂推荐系统:排序06:粗排三塔模型,性能介于双塔模型和精排模型之间
  • 原文地址:https://blog.csdn.net/weixin_75202470/article/details/139455220
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号