0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
|
||||||
1 | ||||||
Программа нахождения НОД двух чисел (нужны комментарии)22.06.2017, 00:50. Показов 5496. Ответов 6
Метки нет (Все метки)
Только недавно начал изучать С++, не могу осмыслить блок инструкций после while. Можете, пожалуйста, объяснить простыми словами как это происходит?
0
|
22.06.2017, 00:50 | |
Ответы с готовыми решениями:
6
Составить нерекурсивную функцию нахождения НОД двух чисел Написать программу для нахождения НОД двух произвольных целых чисел Используя функцию нахождения НОД двух натуральных чисел, сократить обычную дробь Написать функции рекурсивной и не рекурсивной реализации алгоритма Евклида нахождения наибольшего общего делителя (НОД) двух натуральных чисел |
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
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
|
0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
|
|
22.06.2017, 21:17 [ТС] | 3 |
Ну а все-таки, может кто объяснить пошагово как здесь работает цикл while ?
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
22.06.2017, 21:20 | 4 |
С самим то циклом что не ясно? % - остаток от деления. Цикл крутится пока этот остаток не нулевой (нулевое значение считается за ложь, не нулевое - за истину).
0
|
0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
|
|
22.06.2017, 21:48 [ТС] | 5 |
Renji, в общих чертах я понимаю как это происходит, но только начал циклы изучать. В голове я не могу представить как одна переменная заменяется другою, если я правильно понял.
Вот взять числа 20(n1) и 15(n2), что будет с ними происходить в цикле, можете, пожалуйста, описать?
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
22.06.2017, 21:50 | 6 |
Через оператор присваивания =. Опять же, что непонятно то? r получает остаток от деления, n1 получает значение n2, n2 получает значение r. Именно в такой последовательности.
1
|
0 / 0 / 0
Регистрация: 13.06.2017
Сообщений: 8
|
|
22.06.2017, 22:31 [ТС] | 7 |
Renji, сел и на бумаге подробно расписал по шагам и все получилось, спасибо
0
|
22.06.2017, 22:31 | |
22.06.2017, 22:31 | |
Помогаю со студенческими работами здесь
7
Программа рекурсивного нахождения НОД. Не могу понять. Изучение алгоритмов для нахождения НОД целых чисел Рекурсия: нахождение чисел Фибоначчи (нужны комментарии) нод двух чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |