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

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

Войти
Регистрация
Восстановить пароль
 
_Лето_
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 68
#1

Найти наибольший общий делитель двух чисел - C++

03.07.2014, 22:38. Просмотров 587. Ответов 4
Метки нет (Все метки)

Задание: найти наибольший общий делитель двух чисел.

Сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int a,b,c;
    cout << "Введите a:";
    cin >> a;
    cout << "Введите b:";
    cin >> b;
  while (b) 
    {
      c = a % b;
      a = b;
      b = c;
   }
cout << a;
}
Не понятна функция:
C++
1
2
3
4
5
6
while (b) 
    {
      c = a % b;
      a = b;
      b = c;
   }
Что означает while(b)? Пока есть b? И дальше тоже...
Допустим, я беру a=105, а b=70, тогда c присваивается значение 35, a присваивается значение 70, а b присваивается значение 35, а в итоге выводится a, которая почему-то равная 35. Пожалуйста, объясните, как это работает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2014, 22:38     Найти наибольший общий делитель двух чисел
Посмотрите здесь:

C++ Наибольший общий делитель двух целых чисел
C++ Найти наибольший общий делитель и наименьшее общее кратное двух введенных натуральных чисел.
Наибольший общий делитель двух натуральных чисел C++
C++ Найти наибольший общий делитель двух чисел
Требуется найти наибольший общий делитель двух чисел Фибоначчи. C++
Найти наибольший общий делитель и наименьшее общее кратное двух введенных натуральных чисел C++
C++ Найти наибольший общий делитель двух чисел используя алгоритм Евклида
Найти наибольший общий делитель двух чисел C++
Найти наибольший общий делитель и наименьшее общее кратное двух чисел C++
C++ Найти наибольший общий делитель двух введенных чисел, используя алгоритм Евклида
Найти наибольший общий делитель двух чисел Фибоначчи C++
Найти наибольший общий делитель двух чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4931 / 4269 / 1429
Регистрация: 14.04.2014
Сообщений: 16,765
03.07.2014, 22:41     Найти наибольший общий делитель двух чисел #2
Пока (b != 0).
Raily
3 / 3 / 1
Регистрация: 31.01.2014
Сообщений: 34
03.07.2014, 22:48     Найти наибольший общий делитель двух чисел #3
Смотри:
while это цикл, означает ПОКА(пока b неравно(!=) 0) то есть пока b = true;
всё что ты расписал - это правильно, но цикл работает не один раз. После того как всё это выполнится, цикл продолжить работу и переменные будут менять значения;

Программа работает вот так...
a = 105
b = 70
c = 35
потом...
a = 70
b = 35
c = 35
потом...
a = 35
b = 0
c = 0
Вот и всё.
_Лето_
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 68
03.07.2014, 22:58  [ТС]     Найти наибольший общий делитель двух чисел #4
Raily, спасибо, теперь понял
Raily
3 / 3 / 1
Регистрация: 31.01.2014
Сообщений: 34
03.07.2014, 23:06     Найти наибольший общий делитель двух чисел #5
ну хоть спасибо нажми 8)
Yandex
Объявления
03.07.2014, 23:06     Найти наибольший общий делитель двух чисел
Ответ Создать тему
Опции темы

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