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

Найти наибольший делитель, используя алгоритм Евклида

05.06.2017, 10:30. Просмотров 835. Ответов 8
Метки нет (Все метки)

Дано N натуральных чисел. Найти их наибольший делитель,
используя алгоритм Евклида и учитывая, что НОД(a,b,c)= НОД(НОД(a,b),c).
Определить функцию расчета НОД для двух натуральных чисел, а затем с ее
помощью найти НОД для всех N-чисел .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2017, 10:30
Ответы с готовыми решениями:

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

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

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

Найти наибольший общий делитель n и m (наименьшее общее кратное n и m) используя алгоритм Евклида.
10.Даны натуральные числа n,m. Найти наибольший общий делитель n и m...

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

8
Fixer_84
1049 / 659 / 651
Регистрация: 30.04.2016
Сообщений: 2,234
05.06.2017, 10:58 2
Лучший ответ Сообщение было отмечено VladislavQQQQ как решение

Решение

VladislavQQQQ, здравствуйте! Вот запрошенная вами программа:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
 
using namespace std;
 
int GCD(int a, int b)
{
    while (a - b != 0)
    {
        if (a > b)
            a -= b;
        else
            b -= a;
    }
    return a;
}
 
int main()
{
 
    int N, M;
    cout << "Введите количество чисел:" << endl;
    cout << "N = ";
    cin >> N;
    int* A = new int[N];
    cout << "Введите числа:" << endl;
    for (int i = 0; i < N; i++)
    {
        cout << "Число #" << i + 1 << ":";
        cin >> A[i];
    }
    M = A[0];
    for (int i = 1; i < N; i++)
    {
        M = GCD(M, A[i]);
    }
    cout << "НОД данных чисел: " << M << endl;
    delete [] A;
    cin.get();
    return 0;
}
2
VladislavQQQQ
0 / 0 / 0
Регистрация: 17.01.2017
Сообщений: 20
05.06.2017, 12:49  [ТС] 3
Fixer_84, а можете еще помочь ?)
0
Fixer_84
1049 / 659 / 651
Регистрация: 30.04.2016
Сообщений: 2,234
05.06.2017, 12:52 4
VladislavQQQQ, смотря что нужно сделать. Я не дома и работаю с планшета, поэтому круг моих возможностей ограничен до вечера.
2
MrGluck
05.06.2017, 14:07
  #5
 Комментарий модератора 
VladislavQQQQ, один вопрос - одна тема
0
Fixer_84
1049 / 659 / 651
Регистрация: 30.04.2016
Сообщений: 2,234
05.06.2017, 15:18 6
Лучший ответ Сообщение было отмечено VladislavQQQQ как решение

Решение

VladislavQQQQ, вот программа, но я ее не тестировал.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
 
using namespace std;
 
int F(int N)
{
    int k = 0;
    while (N > 0)
    {
        N /= 10;
        k++;
    }
    return k;
}
 
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    int N, k, a, b, c;
    k = a = b = c = 0;
    while (fin >> N)
    {
        k++;
        if (F(N) == 1)
            a++;
        if (F(N) == 2)
            b++;
        if (F(N) == 3)
            c++;
    }
    fout << "Общее количество: " << k << endl;
    fout << "Количество однозначных: " << a << endl;
    fout << "Количество двухзначных: " << b << endl;
    fout << "Количество трехзначных: " << c << endl;
    fin.close();
    fout.close();
    cin.get();
    return 0;
}
Добавлено через 32 минуты
VladislavQQQQ, совсем забыл про ноль. Замените, пожалуйста, 26 строчку на эту:


C++
1
if (F(N) == 1 || N == 0)
2
VladislavQQQQ
0 / 0 / 0
Регистрация: 17.01.2017
Сообщений: 20
05.06.2017, 16:38  [ТС] 7
Fixer_84, спасибо большое , извините за наглость , но можете помочь с последней задачей , пожалуйста )

В файле записана последовательность из N трехзначных целых
чисел. Найти в каждом числе последовательности сумму, произведение и
среднеарифметическое цифр (определение суммы, произведения и
среднеарифметического цифр числа оформить одной функцией
0
Fixer_84
1049 / 659 / 651
Регистрация: 30.04.2016
Сообщений: 2,234
05.06.2017, 19:32 8
Лучший ответ Сообщение было отмечено VladislavQQQQ как решение

Решение

VladislavQQQQ, да, все в порядке. Вот код для задания выше:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <tuple>
#include <fstream>
 
using namespace std;
 
tuple<int, int, double> F(int N)
{
    int sum, p;
    sum = 0;
    p = 1;
    while (N > 0)
    {
        p *= N % 10;
        sum += N % 10;
        N /= 10;
    }
    return make_tuple(sum, p, (double)sum / 3);
}
 
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    int N, sum, p;
    double average;
    fout.precision(2);
    while (fin >> N)
    {
        tie(sum, p, average) = F(N);
        fout << N << ": ";
        fout << sum << " " << p << " " << fixed << average << endl;
    }
    fin.close();
    fout.close();
    system("pause");
    return 0;
}
2
VladislavQQQQ
0 / 0 / 0
Регистрация: 17.01.2017
Сообщений: 20
05.06.2017, 21:10  [ТС] 9
Fixer_84, Спасибо )
0
05.06.2017, 21:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2017, 21:10

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

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

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


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

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

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