“欧几里得算法:欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。”——百度百科

【注意,公式是gcd(a,b)=gcd(b,a mod b),不能是gcd(a,b)=gcd(a mod b,b)。否则会出问题。】

gcd.java:

package zdy.com.company;

public class gcd {

//计算两个非负整数p和q的最大公约数:

// 若q是0,则最大公约数为p。

// 否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。

public static int gcd(int p,int q){

if(q==0)return p;

int r = p % q;

return gcd(q,r);

}

}

【在这里,如果公式是gcd(a,b)=gcd(a mod b,b),即q≠0时return的是gcd(r,q),当传入的p=6,q=33时,会陷入死循环。】

Main.java:

package zdy.com.company;

import java.awt.*;

public class Main

{

public static void main(String args[]){

int i=0;

i=gcd.gcd(6,33);//调用欧几里得算法计算6和33的公约数

System.out.print(i);

}

}

运行结果

运行结果.png

java 欧几里德_用java实现欧几里得算法相关推荐

  1. 最大公约数算法_更相减损法_辗转相除法(即欧几里得算法)

    package algorithm;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...

  2. 易语言 java支持_开源Java客户端可以连接易语言服务器

    我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...

  3. 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...

    最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...

  4. java 计时器_【java内存】内存结构

    开局3张图,结论全靠吹,全文所有内容都围绕这3个图展开. 1.java语言编译解释过程 我们编写的java语言,经过java源码编译器后会编译成jvm字节码,也就是.class文件. 然后再通过类加载 ...

  5. java 模板方法_设计模式(java实现)_模板方法模式(Template method)

    设计模式(java实现)_模板方法模式(Template method) 模板方法模式是编程中经常用到到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个 ...

  6. java安装_使用Java 9模块化来发布零依赖本机应用程序

    java安装 为什么我不能仅构建一个.EXE? 首次引入Java时,主流编程语言大多要么编译成独立的可执行文件(例如C / C ++,COBOL),要么在解释器中运行(例如Perl,Tcl). 对于许 ...

  7. java转账_使用Java模拟银行账户存、取款、转账功能

    半枯 package bank;import java.util.Scanner;/** * 1.建立一个银行账户类(Acount),具有建立新帐号.查询余额.存款.取款.转账 * 即从本账户把钱转给 ...

  8. java预期_预期. java的

    我有这段java代码.我是java中的菜鸟.. 错误: expected cfg = new Config; 码: import java.sql.Connection; import java.sq ...

  9. python能解密java的_实现Java加密,Python解密的RSA非对称加密算法功能

    摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...

最新文章

  1. Codeforces 500
  2. perl 安装GD 出错解决方案
  3. 工作404-判断浏览器函数
  4. 使用meterpreter让没有安装python解释器的肉鸡设备执行任意python程序
  5. CString、char*之间的相互转换
  6. 数据结构 创建顺序表
  7. opencv 4.5.2 使用比色卡进行颜色校正
  8. 免费可商用字体 超好用的德拉黑体
  9. 免安装版的Mysql安装与配置——详细教程
  10. Ubiquitous Religions——并查集
  11. Y9000P 2022独显直连
  12. 英语3500词(20/20)dream主题(2022.4.30)
  13. 百瓦快充伤电池?1天两充用了574天后 我发现真相
  14. 名帖110 董其昌 小楷《五经一论册》
  15. 2022年双十一百亿补贴,2022年聚划算双11玩法解读
  16. ARM处理器的 Handler mode 与 Thread mode 以及 MSP 和 PSP
  17. 厦门大学校园导游系统(图论)
  18. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Standard NLP tasks with specific vocabulary
  19. 一文看懂“知识蒸馏”技术
  20. 阿里百秀前后端交互项目

热门文章

  1. Redis缓存的使用场景
  2. 【阿里云生活物联网架构师专题 ⑨】基于TP6 基于AMPQ协议接收阿里云物联网设备的各种状态数据,实现m2m流转;
  3. 详解升讯威在线客服系统前端多国语言实现技术:原生支持葡文、印尼文、土耳其文、俄文
  4. OSChina 周六乱弹 ——大萌别睡了,该起来喝药拉!
  5. 当用户忠诚度成为一念之间?走进大会开幕日, 了解何以数字优先!
  6. tensorflow(神经网络)学习笔记(三)之调参数实战(笔记)
  7. c语言灰度图像处理程序,C语言实现图像灰度化
  8. mac系统中自带的邮件程序如何添加qq邮箱帐号?
  9. excel最多能有多少行多少列
  10. 当esp32连接到蓝牙或者wife时,连接引脚后一些模块(光敏电阻,传感器之类)读不出模拟值的解决方法