📜  TCS编码实践问题| HCF或GCD的2个数字(1)

📅  最后修改于: 2023-12-03 14:47:53.599000             🧑  作者: Mango

TCS编码实践问题 | 求两个数字的HCF或GCD

无论你是一名经验丰富的程序员,还是一名新手入门的初学者,都避免不了在开发过程中遇到各式各样的问题。本次将介绍如何使用TCS编码技能来解决一个求两个数字的HCF或GCD的问题。

问题描述

在数学中,HCF表示“最大公因数”,GCD表示“最大公约数”。给定两个正整数a和b,求它们的HCF或GCD。

解决方案

我们可以使用Euclidean算法来求两个数字之间的HCF或GCD,其原理如下:

  1. 计算a与b的余数r,将r作为新的b值。
  2. 如果r为0,则停止计算,并且b是HCF或GCD。
  3. 如果r不为0,则将b的值赋值给a,将r的值赋值给b,然后返回第1步继续计算。

具体代码实现如下:

int hcf(int a, int b) {   
    while (a % b != 0) {
        int temp = a % b;
        a = b;
        b = temp;
    }
    return b;
}
def gcd(a, b):
    while b != 0:
        temp = a % b
        a = b
        b = temp
    return a
public static int GCD(int a, int b) {
    while (b != 0) {
        int r = a % b;
        a = b;
        b = r;
    }
    return a;
}
测试样例

| a | b | 结果(HCF) | 结果(GCD) | | - | - | ----------- | ----------- | | 8 | 12 | 4 | 4 | | 20 | 12 | 4 | 4 | | 39 | 91 | 13 | 13 |

总结

通过以上的介绍,希望能够帮助大家解决求两个数字的HCF或GCD的问题。当然,TCS的编码实践技能远不止如此,希望大家能够继续深入学习。