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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alexeYesterday
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 30
#1

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

22.02.2014, 14:37. Просмотров 249. Ответов 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.
Но в итоге программ завершается, подскажите пожалуйста в чем ошибка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2014, 14:37     Алгоритм Эвклида, как возвратиться к шагу 2
Посмотрите здесь:

алгоритм эвклида - C++
как работает этот код? int gcd(int a, int b) { while(b) b^=a^=b^=a%=b; return a; }

При вводе определенных переменных программа должна возвращать пользователя обратно к первому шагу - C++
Здравствуйте. Хочу сделать так, чтобы при вводе любых чисел кроме 1 и 2, программа выдавала сообщение об ошибке и не закрывалась (так как...

Как прописать алгоритм... - C++
на С++...для перевода из 16 в 10 систему счисления? там прописывать АBCDEF нужно? вот у меня есть листинг польской записи, и вот к ней...

Как написать алгоритм? - C++
Здравствуйте, помогите пожалуйста написать такой алгоритм: есть массив типа int, который создается динамично, его максимальной размер...

Не пойму как организовать алгоритм - C++
Привет!... Не пойму как можно организовать алгоритм, имитирующий алгоритм планирования &quot;Самый короткий процесс - следующий&quot;. В принцепи...

Как работает алгоритм ПП рюкзака? - C++
Здравствуйте, вот код полного перебора рюкзака. Все понимаю, кроме главного цикла, где всё высчитывается. v - объем рюкзака, n -кол- во...

Как работает алгоритм Khazad - C++
очень нужно обясните

как написать этот алгоритм? - C++
нужно написать эту маленькую программу на C++ 6.00

Как сделать Линейный алгоритм в Visual 6.0 - C++
Перевод величин из одной единицы измерения в другую. Пользователь вводит значение в единице измерение №1, программа переводит это значение...

Алгоритм: Как определить размера банка? - C++
Вот в чём суть: пишу покер дошёл до того, что игроки ставят ставки, игроки которым не хватает денег на ставку ставят столько, сколько есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru