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

С++ «Неделя первая - Условный оператор и циклы - Наибольший общий делитель» #4

Войти
Регистрация
Восстановить пароль
Рейтинг: 1.00. Голосов: 1.

С++ «Неделя первая - Условный оператор и циклы - Наибольший общий делитель» #4

Запись от acmades размещена 13.07.2017 в 03:38
Обновил(-а) acmades 15.07.2017 в 13:11 (Изменение категории)

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

Пример

stdin -> stdout
25 27 -> 1
12 16 -> 4
13 13 -> 13

Моё решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h" //это для Visual studio
#include <iostream>
using namespace std;
int main()
{
    int a, b, c;
    cin >> a >> b; //вводим цифры
    if (a > b)c = b; // чтобы меньше делать итераций в цикле ниже, сразу найдем меньшее число
    else c = a;
    while (a%c != 0 || b%c != 0) { //пока оба не делятся нацело, уменьшать делитель - так найдем наибольший
        --c;
    }
    cout << c; //выводим делитель при котором оба числа делятся нацело
    }
    return 0;
}
Вроде оптимально написал...
Всего комментариев 2

Комментарии

  1. Старый комментарий
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    #include <iostream>
     
    using namespace std;
     
    unsigned gcd(unsigned a, unsigned b)
    {
        if (b == 0)
            return a;
        if (a > b)
            return gcd (b, a % b);
        else
            return gcd (a, b % a);
    }
     
    int main(){
        unsigned a, b;
        cin >> a >> b;
        cout << gcd(a,b);
        return 0;
    }
    Запись от flash_back размещена 29.09.2017 в 15:52 flash_back вне форума
  2. Старый комментарий
    Аватар для Avazart
    Цитата:
    C++
    1
    2
    
        if (a > b) c = b; 
        else c = a;
    C++
    1
    
    int с = (a>b)? b : a;
    Запись от Avazart размещена 29.09.2017 в 17:04 Avazart вне форума
    Обновил(-а) Avazart 29.09.2017 в 17:05
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru