Форум программистов, компьютерный форум CyberForum.ru

алгоритм евклида - C++

Восстановить пароль Регистрация
 
vitaliypro
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 125
30.09.2013, 23:54     алгоритм евклида #1
не могу выкупить ничего что происходит и как решить.
вот мое задание : : : : Даны натуральные а и b, не равные 0 одновременно. Найти d = НОД (a,b) и такие целые x и y, что d = a/x + b*y.



Вот вариант решения подобной задачи:
Даны натуральные а и b, не равные 0 одновременно. Найти d = НОД (a,b) и такие целые x и y, что d = a*x + b*y.

КОД ПРОГРАММЫ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
 
using namespace std;
int x=1,y=0,d;
void euclid(int a, int b)
{
    int t;
    if (!b) // в случае, если b = 0, полагаем, что x = 1, y = 0;
    {
        d = a; x = 1; y = 0;
        return;
    }
    euclid(b, a%b); // рекурсивно вызываем функцию от b и остатка их деления
    t = y;
    y = x - (a/b) * y;
    x = t;
}
 
int main()
{
    int a,b;
    setlocale(LC_ALL,"rus");
    cout<<"Введите числа A и B"<<endl;
    cin>>a>>b;
    euclid(a,b);
    cout<<"НОД = "<<d<<endl;
    cout<<"Коэффициентами Безу будут x = "<<x<<" и y = "<<y<<endl;
    return 0;
} 


что и как надо изменить, подскажите плииииззз!!!!

Добавлено через 2 часа 0 минут
upup
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Anton998
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 7
01.10.2013, 00:29     алгоритм евклида #2
Попробуй найти все х, кратные а, и для каждого значения х попытайся найти у.
vitaliypro
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 125
01.10.2013, 00:38  [ТС]     алгоритм евклида #3
это как?
Rifle
 Аватар для Rifle
25 / 25 / 5
Регистрация: 15.11.2012
Сообщений: 93
Завершенные тесты: 4
01.10.2013, 08:58     алгоритм евклида #4
Не знаю, в чем фишка этого задания, но вот:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
 
 
int EuclidAlgorithm(int a, int b);
 
int main()
    {
    setlocale(LC_ALL,"rus");
    int a, b;
    cout << "Введите два числа: ";
    cin >> a >> b;
    if (b > a)
        {
        int temp = a;
        a = b;
        b = temp;
        }
    int d = EuclidAlgorithm(a, b);
    cout << "НОД = " << d << endl;
    cout << EuclidAlgorithm(a, b) << " = " << a << "/x + " << b << "*y, тогда x = " << a/d << " и y = " << 0 << endl;
    
    return 0;
    }
    
int EuclidAlgorithm(int a, int b)
    {
    if (!b)
        return a;
    else
        EuclidAlgorithm(b, a%b);
    }
vitaliypro
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 125
01.10.2013, 10:08  [ТС]     алгоритм евклида #5
тоже не знаю в чем фишка, но спасибо)
Yandex
Объявления
01.10.2013, 10:08     алгоритм евклида
Ответ Создать тему
Опции темы

Текущее время: 05:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru