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

НОЧД и НОНД(задача) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатель на объект.объясните http://www.cyberforum.ru/cpp-beginners/thread631402.html
base - это базовый класс...first - это производный от base...iam() виртуальная функция, перегруженная в first... Вопрос: почему вызывается функция базового класса, а не first?.. #include <iostream> #include "classes.cpp" using namespace std; int main() { base ibase; first ifirst;
C++ GetModuleFileNameEx ошибка #include <iostream> #include <windows.h> #include <time.h> #include "main.h" #pragma comment(lib,"Psapi") using namespace std; //global ULONG crc_tab; http://www.cyberforum.ru/cpp-beginners/thread631400.html
C++ Отсортировать по возрастанию элементы массива
1)Дан массив целых чисел из 10 элементов отсортировать по возрастанию. 2)Дан действительный массив A.Напечатать индекс его отрицательных элементов. помогите пожалуйста написать программу на С++
Перевод программы с Pascal на С++ C++
uses crt; var i :integer; BEGIN ClrScr; Write('Результат: '); for i := 20 to 50 do if (i mod 3 = 0) and (i mod 5 <> 0) then Write(i, ' '); Readln; END.
C++ Квадратные уровнения http://www.cyberforum.ru/cpp-beginners/thread631379.html
помогите написать код. программа должна: решить квадратное уравнение по трем коэффициентам. даны a, b и c напишите как можно это реализовать.
C++ Рекурсия В общем нужно вывести биноминальные коэффициенты последовательности.... т.е есть последовательность - скажем вектор 12345 n = size = 5 k - пусть равен 2 тогда результатом должны быть все возможные пары 12, 13, 14, 15, 23, 24, 25, 34, 35, 45 подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
31.07.2012, 23:47     НОЧД и НОНД(задача)
Смотрите. GE/OCD = greatest even/odd common divisor.

GECD(n, k) = 2 * GCD(n/2, k/2), если n и k чётные
GECD(n, k) = 0 иначе

GOCD(n, k) = GOCD(n, k), если n и k чётные
GOCD(n, k) = GCD(n, k) иначе

Итого:
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>
using namespace std;
 
int GCD(int a, int b)
{
    if (a < b) {
        swap(a, b);
    }
    while ((b != 0) && (b != 1)) {
        a %= b;
        swap(a, b);
    }
    return (b == 0) ? a : 1;
}
 
int GECD(int a, int b)
{
    if ((a % 2 == 0) && (b % 2 == 0)) {
        return 2 * GCD(a / 2, b / 2);
    }
    else {
        return 0;
    }
}
 
int GOCD(int a, int b)
{
    while ((a % 2 == 0) && (b % 2 == 0)) {
        a /= 2;
        b /= 2;
    }
    return GCD(a, b);
}
 
int main()
{
    int a, b;
    cin >> a >> b;
    cout << GECD(a, b) << " " << GOCD(a, b);
    return 0;
}
Всё так же тормозит?
 
Текущее время: 07:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru