Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
koyonn
0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
1

Программа нахождения НОД двух чисел (нужны комментарии)

22.06.2017, 00:50. Просмотров 206. Ответов 6
Метки нет (Все метки)

Только недавно начал изучать С++, не могу осмыслить блок инструкций после while. Можете, пожалуйста, объяснить простыми словами как это происходит?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
    int n1, n2;
    int nod;
    int r;
    cout<<"Input n1: \n";
    cin>>n1;
    cout<<"Input n2: \n";
    cin>>n2;
    while(n1%n2) {
        r=n1%n2;
        n1=n2;
        n2=r;
    }
    nod=n2;
    cout<<n2;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2017, 00:50
Ответы с готовыми решениями:

Составить нерекурсивную функцию нахождения НОД двух чисел
Объясните пожалуйста код! Задача: Составить нерекурсивную функцию...

Написать программу для нахождения НОД двух произвольных целых чисел
1. Написать программу для нахождения НОД двух произвольных целых чисел. 2....

Используя функцию нахождения НОД двух натуральных чисел, сократить обычную дробь
Используя функцию nod нахождения наибольшего общего делителя двух натуральных...

Написать функции рекурсивной и не рекурсивной реализации алгоритма Евклида нахождения наибольшего общего делителя (НОД) двух натуральных чисел
Написать функции рекурсивной и не рекурсивной реализации алгоритма Евклида ...

Программа рекурсивного нахождения НОД. Не могу понять.
Доброе время суток! Программа с рекурсией. Не могу понять строку: return 2 *...

6
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
22.06.2017, 01:10 2
Алгоритм Евклида. Это не сюда, а на математический форум.
Наибольший общий делитель делит два числа A и B без остатка.
Представим A как B*N+X. Значит, НОД у нас делит без остатка B и B*N+X. Если X у нас здесь нулевой, значит НОД равен B.
Если НОД делит без остатка B, ясное дело он делит без остатка и B*N. Из чего следует что он должен делить без остатка и X (иначе сумма B*N+X не поделится).
Го в начало, поменяв A и B, на X и B.
1
koyonn
0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
22.06.2017, 21:17  [ТС] 3
Ну а все-таки, может кто объяснить пошагово как здесь работает цикл while ?
0
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
22.06.2017, 21:20 4
Цитата Сообщение от koyonn Посмотреть сообщение
Ну а все-таки, может кто объяснить пошагово как здесь работает цикл while ?
С самим то циклом что не ясно? % - остаток от деления. Цикл крутится пока этот остаток не нулевой (нулевое значение считается за ложь, не нулевое - за истину).
0
koyonn
0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
22.06.2017, 21:48  [ТС] 5
Renji, в общих чертах я понимаю как это происходит, но только начал циклы изучать. В голове я не могу представить как одна переменная заменяется другою, если я правильно понял.
Вот взять числа 20(n1) и 15(n2), что будет с ними происходить в цикле, можете, пожалуйста, описать?
0
Renji
2105 / 1545 / 471
Регистрация: 05.06.2014
Сообщений: 4,484
22.06.2017, 21:50 6
Цитата Сообщение от koyonn Посмотреть сообщение
Я в голове не могу представить как одна переменная заменяется другою, если я правильно понял.
Через оператор присваивания =. Опять же, что непонятно то? r получает остаток от деления, n1 получает значение n2, n2 получает значение r. Именно в такой последовательности.
1
koyonn
0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
22.06.2017, 22:31  [ТС] 7
Renji, сел и на бумаге подробно расписал по шагам и все получилось, спасибо
0
22.06.2017, 22:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2017, 22:31

Изучение алгоритмов для нахождения НОД целых чисел
Было задание ниже и я написал код к нему, но на выполнении //Задание - 2 он...

Рекурсия: нахождение чисел Фибоначчи (нужны комментарии)
это функция нахождения чисел фибоначи. немогу понять как она работает можите...

нод двух чисел
Помогите составить программу нахождение нод двух введенных чисел


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

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

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