HCF заданных номеров - PullRequest
0 голосов
/ 05 июля 2010

Какова логика для расчета HCF заданных чисел?

Ответы [ 5 ]

4 голосов
/ 05 июля 2010

Обычным способом вычисления наивысшего общего множителя, чаще называемого наибольшим общим делителем, является алгоритм Евклида .

Если вы хотите вычислить HCF из более чем двух чиселскажем i 1 , i 2 , i 3 , ..., i n , один алгоритм:

res = gcd(i[1], i[2])
for j = 3..n do
    res = gcd(res, i[j])
end
return res
2 голосов
/ 05 июля 2010

Вот реализация алгоритма Евклида в C ++:

unsigned int hcf(unsigned int a, unsigned int b) {
   if (b == 0) {
      return a;
   } else {
      return hcf(b, a % b);
   }
}
1 голос
/ 17 июня 2013

Более быстрый и короткий код для GCD

int gcd(int a, int b) {
    while(b) b ^= a ^= b ^= a %= b;
return a;
}
0 голосов
/ 03 июля 2019

Таким образом, он будет работать независимо от порядка ввода:

public static void main(String[] args) {
    int a, b;
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter your first number: ");
    a = sc.nextInt();
    System.out.println("Enter your second number: ");
    b = sc.nextInt();
    System.out.println("The H.C.F of " + a + " and " + b + " is: " + HCF(a,b));
}

private static int HCF(int a, int b) {

    int c;
    if (a > b) {
        c = a % b;
        if (c == 0)
            return b;
        else
            return HCF(b, c);
    } else {
        c = b % a;
        if (c == 0)
            return a;
        else
            return HCF(a, c);
    }
}
0 голосов
/ 19 июля 2014

Вот код для расчета HCF двух целых чисел. Если у вас возникли проблемы, прокомментируйте свой запрос, не стесняйтесь спрашивать

 import java.util.*;
class ABC{
      int HCF(int a,int b){
        int c;
        int d;
        c=a%b;
        if(c==0)    
            return b;
        else 
            return HCF(b,c);
     }

     public static void main(String[]args){
        int a,b;
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your first number: ");
        a= sc.nextInt();
        System.out.println("Enter your second number: ");
        b=sc.nextInt();
        ABC obj= new ABC();

        if(b>a)
            System.out.println("Wrong Input the first number must be larger than the    second one");


        else
            System.out.println("The H.C.F of "+a+" and "+b+" is: "+obj.HCF(a,b));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...