算法设计与分析-01欧几里得

欧几里得GCD算法

GCD:Greatest Common Divisor 最大公约数问题

算法的伪代码表示

◼初始条件:
◼给定整数𝒂 ≥ 𝟎,𝒃 ≥ 𝟎,且𝒂,𝒃不同时为0;
◼ 目标:求𝒂,𝒃的最大公约数。
◼ 方法:
1. 输入𝒂,𝒃
2. while 𝒃 ≠ 𝟎
3. r = a MOD b
4. a = b
5. b = r
6. 转2 7. 输出结果:a

算法的手算表格

求1035与759的最大公约数
在这里插入图片描述

算法的java代码表示

package e;
import java.util.*;
public class GCD {
	static Scanner input = new Scanner(System.in);
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		System.out.println("请输入第一个数字a:");
		int a = input.nextInt();
		System.out.println("请输入第二个数字b:");
		int b = input.nextInt();
		EuclidGCD(a, b);
	}
	public static void EuclidGCD(int a,int b){
		int r = 0;
		int q = 0;
		System.out.println("a  b  r  q");
		while(b != 0) {			
			r = a % b;
			q = a / b;
			System.out.println(" "+a+" "+b+" "+r+" "+q);
			a = b;
			b = r;			
		}
		System.out.println(" "+a+" "+b);
	}
	
}

java代码运行结果

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值