Hỏi về thuật toán tìm nghiệm của phương trình bậc nhất 2 ẩn bằng đệ quy

Mình đang làm 1 bài toán tìm nghiệm của pt 2 ẩn bằng đệ quy.
Mà cụ thể là tìm x, y: UCLN(a,b) = a*x + b*y

Ngồi gần 2 tiếng rồi mà code vẫn chạy sai :frowning:
Mn góp ý giúp mình với ạ.
Chỉ tìm 1 cặp thôi nhé mn

Bạn cho mình nguyên văn cái đề bài nào?

1 Like

Như trên :smiley:

Với lại bạn code ntn nữa.

1 Like

Đề là tìm cặp x, y : UCLN(a,b) = a * x + b * y.
Mình code đếm số bị trừ của mỗi cái rồi xuất ra, nhưng lỗi mỗi khi chuyên a > b sang b >a …

a, b là có sẵn phải không. Vậy bạn cho đại một x rồi tìm y thôi :unamused:

1 Like

~.~

2 Likes

hì hì, sr bạn. Mình thiếu sót quá ^^

chém gió cái, code C++ như pseudo code :joy:

#include <iostream>
#include <utility>

std::pair<int,int> bezoutCoefficients(int a, int b)
{
    int s = 0, old_s = 1;
    int t = 1, old_t = 0;
    int r = b, old_r = a;
    while (r)
    {
        int quotient = old_r / r;
        old_r = std::exchange(r, old_r - quotient * r);
        old_s = std::exchange(s, old_s - quotient * s);
        old_t = std::exchange(t, old_t - quotient * t);
    }
    return {old_s, old_t};
}

int main()
{
    auto [x, y] = bezoutCoefficients(66, 242);
    std::cout << "x = " << x << ", y = " << y << "\n";
}
1 Like

Bậc nhất mà có 2 ẩn à anh em @@.

1 Like

Sao lại không :smiley: mà đây là phương trình nghiệm nguyên.

1 Like

Bị nhầm ẩn với nghiệm :slight_smile:
2 ẩn nhưng chỉ có 1 nghiệm ( trừ trường hợp đặc biệt).

1 Like

1 họ nghiệm :smiley: số nghiệm nguyên là 0 hoặc vô số.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?