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

Рекурсивные функции. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Маленький вопросик http://www.cyberforum.ru/cpp-beginners/thread276712.html
public partial class Form1 : Form { float AnswerValue; float ScreenValue; string SumString; string CurrentOperator; bool ClearScreen; public Form1() {
C++ За один просмотр одномерного массива заменить все его элементы с нечетными номерами их квадратами За один просмотр одномерного массива заменить все его элементы с нечетными номерами их квадратами, а с четными увеличить на заданное число Q. В головной функции осуществить печать исход¬ного иполученного массивов. http://www.cyberforum.ru/cpp-beginners/thread276700.html
C++ почему printf не видит некоторые аргументы?
программа на с++, но для ограничения числа знаков после запятой использовала printf. #include <iostream.h> #include <stdlib.h> #include <stdio.h> void main() { int colPos, rowPos; int i, j, k, razm,g; double max;
из Visual Basic в С++..маленький вопросик C++
как Dim a As Double Dim b As Integer записать на с++???
C++ Распечатать односвязный список классов http://www.cyberforum.ru/cpp-beginners/thread276686.html
создал несколько классов так :первый класс абстактный втрой унаследывает от первого, третий от второго в первом класе есть функция print()=0 она переопеределяетса во втором и третем, так же в первом сделал указатели для добавления новых обьектов классов в список (односвязный) Animals *next; static Animals *first; static friend void print_list() { Animals *temp = first;...
C++ windows forms как сделать чтобы по нажатию кнопки.1. значение записывалось в функцию TextBox1 ?? подробнее

Показать сообщение отдельно
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
15.04.2011, 22:05     Рекурсивные функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <sstream>
 
typedef __int64 LL;
 
#define FOR(i,a,b) for (int i(a), _n(b); i < _n; ++i)
 
LL gcd(const LL &a, const LL &b) { return a ? gcd(b%a, a) : b; }
 
int main(){
    //freopen("test.txt", "r", stdin);
 
    LL n, m, x, y;
    cin >> m >> n;
    LL g = gcd(n, m);
    FOR(i,0,10000){
        if ((i * m - g) % n == 0){
            cout << i << "*" << m << "-" << (i * m - g) / n << "*" << n << "=" << g << endl;
            break;
        }
    }
}
Добавлено через 4 минуты
Код
m*x + n*y = gcd(m,n)
m*x - gcd(m,n) = n*y
Следовательно перебираем все множители х и проверяем на делимось n
Код
( m*x - gcd(m,n) ) mod n == 0
Добавлено через 2 минуты
Если посчитаешь асимптотику, то у тебя работает за квадрат - O(n^2) а у меня за линию O(n) поэтому для чисел до 10^6 в секунду вложишься.
 
Текущее время: 11:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru