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

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

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

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

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

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

Расчет наибольшего общего делителя двух натуральных чисел используя алгоритм эвклида - C++
пожалуйста помогите решить задачу на си++. даны натуральные числа а и б,обозначенные соответственно числитель и знаменатель дроби.сократить...

Как на последнем шагу удалить endl - C++
Как на последнем шагу удалить endl. Что бы в файле не было пустой строчки в конце

Решения СЛАУ методом Гаусса по шагу - C++
Добрый день! Очередной раз прошу советов! Имеется СЛАУ, которое требуется решить методом Гаусса на с++. Соответственно, на...

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

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab () { int s1 = 0; int s2 =...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2014, 14:37
Привет! Вот еще темы с ответами:

Алгоритм Эвклида - Дискретная математика
показать, что для произвольных целых чисел а и б, уравнение ах+бу=НОД(а,б) разрешимо в целых числах

Алгоритм Эвклида - Pascal ABC
Такой вопрос. Мне нужно написать программу , которая находит НОД(наибольший общий делитель) для 3-х целых, положительных чисел ,используя...

Алгоритм Эвклида - Алгебра
Как оценить сложность алгоритма Эвклида для поиска наибольшего общего делителя?

Алгоритм Эвклида. 10 пар чисел - Java SE
Как сгенерировать 10 пар чисел, в промежутках от 0 до 100, чтобы потом применить алгоритм Эвклида к каждой паре? public static int...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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