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

Алгоритм Эвклида, как возвратиться к шагу 2 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определение всех простых путей в ориентированном графе http://www.cyberforum.ru/cpp-beginners/thread1102696.html
Здравствуйте, уважаемые форумчане! Работаю над одним заданием, но пока не очень получается. Оно сформулировано следующим образом: определить все простые пути в ориентированном графе,...
C++ Копирование в два и более файла Нужно сделать так чтобы когда он сохранял нам в указанный файл, и сохранял в другой файл который пользователю неизвестен, написал вроде бы но что то не работает. Помогите разобраться что тут и как:... http://www.cyberforum.ru/cpp-beginners/thread1102692.html
Создать класс "студент" C++
Помогите написать программу, пожалуйста. Вот задание: Класс - студент. Параметры (поля): ФИО, массив экзаменационных оценок (m=4). Статус доступа всех полей private. Класс включает: конструктор и...
C++ Могут ли две string разделять одни данные?
Обнаружил, что substr() создает новую подстроку из заданной строки, а значит в данном коде: string str("something"); string a = str.substr(0), b = str.substr(4); у меня будет три разных строки и...
C++ Необработанное исключение http://www.cyberforum.ru/cpp-beginners/thread1102682.html
Здравствуйте. Нужно добавить в готовый класс свои функции из предыдущих работ. Все добавил, но при вызове функции "cdd" вылезает ошибка "Необработанное исключение в "0x00f12afb" в "eta.exe":...
C++ Функция с неограниченным количеством аргументов Вообщем проблема: написал функцию неограниченным количеством аргументов под виндой (компилятор mingw) все работает как часы, но под unix (компилятор gcc) начинаются проблемы, а точнее правильно берет... подробнее

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

Алгоритм Эвклида, как возвратиться к шагу 2 - C++

22.02.2014, 14:37. Просмотров 251. Ответов 0
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int lab2()
{   int a=0,b=0,n=0,q=0;
    do{cout << "Введите первое неотрицательное число: ";
       cin >> a;}while(a<0);
    do{cout << "Введите второе неотрицательное число: ";
       cin >> b;}while(b<0);
    do{cout << "Введите моудуль: ";
       cin >> n;}while(n==0);
    int u1=0,u2=1,u3=n;                      //Вектор (u1,u2,u3)
    int v1=1,v2=0,v3=a;                      //Вектор (v1,v2,v3)
    int t1,t2,t3;                            //Вектор (t1,t2,t3)
 
    while(u3!=1)
    {
    q=u3%v3;                                 //Установить q=u3/v3
    t1=(u1-v1)*q; t2=(u2-v2)*q; t3=(u3-v3)*q;//(t1,t2,t3) = (u1,u2,u3)-(v1,v2,v3)*q
    u1=v1; u2=v2; u3=v3;                     //(u1,u2,u3) = (v1,v2,v3)
    v1=t1; v2=t2; v3=t3;                     //(v1,v2,v3) = (t1,t2,t3)
    }
 
    cout<<u1<<" "<<u2<<" "<<u3<<" ";
    system("pause");}
Данный алгоритм должен работат следующим образом:
Шаги алгоритма:
1. Начальная установка.
Установить (u1,u2,u3):=(0,1, n),
(vl, v2, v3) = (1, 0, a).
2. u3 = 1?. Если u3 = 1, то алгоритм заканчивается.
3. Разделить, вычесть.
Установить q:=[u3/v3].
Затем установить
(t1, t2, t3) := (u1,u2,u3) - (v1, v2, v3) * q,
(u1,u2,u3):= (v1, v2, v3),
(v1, v2, v3) := (t1, t2, t3).

Возвратиться к шагу 2.
Но в итоге программ завершается, подскажите пожалуйста в чем ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru