Tìm ước chung lớn nhất javascript

answer

93

Đây là một giải pháp đệ quy.

 var gcd = function[a, b] {
  if [!b] {
    return a;
  }

  return gcd[b, a % b];
}

Trường hợp cơ sở của chúng tôi là khi bbằng 0. Trong trường hợp này, chúng tôi quay trở lại a.

Khi chúng ta đệ quy, chúng ta hoán đổi các đối số đầu vào nhưng chúng ta chuyển phần còn lại của a / blàm đối số thứ hai.

93 hữu ích 5 bình luận chia sẻ

answer

28

Lấy từ Wikipedia.

Đệ quy:

function gcd_rec[a, b] {
    if [b] {
        return gcd_rec[b, a % b];
    } else {
        return Math.abs[a];
    }
}

Lặp lại:

function gcd[a,b] {
    a = Math.abs[a];
    b = Math.abs[b];
    if [b > a] {var temp = a; a = b; b = temp;}
    while [true] {
        if [b == 0] return a;
        a %= b;
        if [a == 0] return b;
        b %= a;
    }
}
  • CHỈNH SỬA cho mỗi nhận xét của người dùng

28 hữu ích 1 bình luận chia sẻ

answer

13

function egcd[a, b] {
    if [a == 0]
        return b;

    while [b != 0] {
        if [a > b]
            a = a - b;
        else
            b = b - a;
    }

    return a;
}

13 hữu ích 0 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Tôi muốn tìm ước số chung lớn nhất bằng JavaScript.

Bất cứ ai đã làm điều đó trước đây và sẵn sàng chia sẻ?

Đây là một giải pháp đệ quy.

var gcd = function[a, b] {
    if [ ! b] {
        return a;
    }

    return gcd[b, a % b];
};

Trường hợp cơ sở của chúng tôi là khi b bằng 0. Trong trường hợp này, chúng tôi trả về a.

Khi chúng tôi đệ quy, chúng tôi trao đổi các đối số đầu vào nhưng chúng tôi vượt qua phần còn lại của a / b là đối số thứ hai.

Lấy từ Wikipedia.

Đệ quy:

function gcd_rec[a, b] {
    if [b] {
        return gcd_rec[b, a % b];
    } else {
        return Math.abs[a];
    }
}

Lặp lại:

function gcd[a,b] {
    a = Math.abs[a];
    b = Math.abs[b];
    if [b > a] {var temp = a; a = b; b = temp;}
    while [true] {
        if [b == 0] return a;
        a %= b;
        if [a == 0] return b;
        b %= a;
    }
}
  • EDITed mỗi bình luận của người dùng

function egcd[a, b] {
    if [a == 0]
        return b;

    while [b != 0] {
        if [a > b]
            a = a - b;
        else
            b = b - a;
    }

    return a;
}

Home » HTML/CSS » JavaScript » Thiết kế Website » JavaScript: Tìm UCLN, BCNN của 2 số a, b [nguyên, nhập từ bàn phím]

JavaScript: Tìm UCLN, BCNN của 2 số a, b [nguyên, nhập từ bàn phím]

- Thứ Hai, 4 tháng 11, 2013

UCLN

var a,b;

function UCLN[x,y]{

while[x!=y]   {

            if[x>y] x=x-y;

            else y=y-x;

}

return x;

}

a=prompt["Nhap gia tri a:"];

b=prompt["Nhap gia tri b:"];

document.write["Uoc chung lon nhat: " + UCLN[a,b]]

document.write["Boi chung nho nhat: " + a*b/UCLN[a,b]]


Tags: Lập trình, JavaScript, BCNN, UCLN

Title: JavaScript: Tìm UCLN, BCNN của 2 số a, b [nguyên, nhập từ bàn phím]
Post by newbie
Publication: 2013-11-04T23:15:00-08:00
Ranked: 5 | Maximum rating: 5 UCLN var a,b;...

Chủ Đề