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

Решение диофантова уравнения на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ вектор структур http://www.cyberforum.ru/cpp-beginners/thread550257.html
допустим есть структура struct human { name; age; //..... } объявим вектор std::vector<human> vec как сделать поиск элемента вектор по полю name
C++ Переставить элементы в массиве В заданной строке переставить первый отрицательный и последний положительный элементы, если таких нет, то сообщить об этом. http://www.cyberforum.ru/cpp-beginners/thread550247.html
Строки C++
Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте.
C++ Сортировка
Здравствуйте помогите реализовать сортировку в файле фамилий по алфавиту и вывод на экран #include <iostream> #include <fstream> #include <iomanip> #include <stdexcept> #include <cstring> ...
C++ Подсчитать последовательность http://www.cyberforum.ru/cpp-beginners/thread550241.html
Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а.
C++ Не могу найти ошибку... минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Я ввожу матрицу 1 2 3 4 5 6 7 8 9, т.е. минимум сумм элементов диагоналей параллельных побочной будет 1.... подробнее

Показать сообщение отдельно
Sweet_Loo
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 5

Решение диофантова уравнения на С++ - C++

16.04.2012, 20:46. Просмотров 1909. Ответов 0
Метки (Все метки)

Написать программу, которая принимает в качестве аргументов числа a и b и возвращает структуру из трех полей: x, y и НОД(a,b), которые являются решением диофантова уравнения с параметрами a и b.
Есть решенный вариант через указатели, от которых нужно избавиться:
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
35
36
37
38
39
void diofant(int a, int b, int *x, int *y, int *nod)
{
    int q, r, x1, x2, y1, y2;
    if (b == 0) 
    {
        *nod = a,
        *x = 1,
        *y = 0;
        return;
    }
 
    x2 = 1;
    x1 = 0;
    y2 = 0;
    y1 = 1;
    cout<<"x  y  mod " <<endl;
 
    while (b >+ 0) 
    {
        q = a / b;
        r = a - q * b;
 
        *x = x2 - q * x1;
        *y = y2 - q * y1;
 
        a = b;
        b = r;
 
        x2 = x1;
        x1 = *x;
        y2 = y1;
        y1 = *y;
        cout <<x2<<"  "<<y2<<"  "<< a <<endl;
    }
 
    *nod = a;
    *x = x2;
    *y = y2;
}
Заранее благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru