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

Остаток деления от числа фибоначчи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Числа Фибоначчи http://www.cyberforum.ru/cpp/thread13725.html
У меня вот какая проблема: Числа Фибоначчи определяются рекуррентной формулой: f0 = 0; f1 = 1; fn = fn-1 + fn-2; Начало последовательности имеет вид 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... . Входные данные: В единственной строке находится число N (0 <= N <= 10000). Выходные даны: Выведите N-те число Фибоначчи. Пример введения
C++ Алгоритм игры Быки -коровы в С++ сложно ли реализовать алгоритм игры Быки -коровы в С++ http://www.cyberforum.ru/cpp/thread13658.html
Делаем игру. Можете помочь? C++
Знаю, что ваще не по теме, но нормальных программистов, кроме как на специальных форумах, как этот, мы найти нигде не можем. Короче, нужны программисты на C++. Наверняка среди вас есть люди, кто не проч заделать игру, но по какой-то причине до сих пор не занялся этим(ну мало ли у кого какая история). Мы предлагаем таким людям объединиться, чтобы идеи и желание не пропадали зря. Терять вам...
Исходники асечного (ICQ) протокола C++
Народ, давно ищу одну вещь, решил создать ветку. У кого-нибудь есть исходники асечного (ICQ) протокола? Полностью рабочего. Нашел какую-то х... там отправка данных не работает... Поделитесь, кто богат, плз.
C++ Пререзапуск сетевого адаптера http://www.cyberforum.ru/cpp/thread13462.html
Вобщем пишу прогу для автоматической смены IP сетевого интерфейса. как сменить IP разобрался, делается очень просто в реестре, но после смены значения ключа конечно же нужен перезапуск подключения и как это реализовать программно не знаю.. искал инфу в инете, но толком ничего не нашел.. Буду благодарен за помощь.
C++ qsort, рабочий день убит... Всем привет, Я, наверное, представляться не буду :) Вообщем, один мой рабочий день на этой неделе был убит такой вещью: делал я задачку на сортировку строк в матрице. Решил делать через qsort. Но, че-то мои мозги повисли на мысли что сортировка не пашет на количестве элементов большем 9... брррр. Писал в VS 2008 (в 2005 тоже пробовал). Забил я на матрицу и сократил до такого: #include... подробнее

Показать сообщение отдельно
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1

Остаток деления от числа фибоначчи - C++

11.10.2008, 11:56. Просмотров 2194. Ответов 0
Метки (Все метки)

подскажите, как максимально минимизировать такой алгоритм:
Код
#include <iostream>
using namespace std;
const int N = 2;
void mult(long long a[N][N], long long b[N][N], long long res[N][N], long long d){
  long long c[N][N] = {0, 0, 0, 0};
  for(int i = 0; i < N; i++)
    for(int j = 0; j < N; j++){
      c[i][j] = 0;
      for(int k = 0; k < N; k++)
        c[i][j] = (c[i][j] + (a[i][k] % d)*(b[k][j] % d)) % d;
      c[i][j] = c[i][j] % d;
    }
  memmove(res, c, 4 * sizeof(long long));
}
int main()
{
    long long mp[N][N] = {0, 1, 1, 1};
    long long mr[N][N] = {1, 0, 0, 1};
    long long n, d;
    cin>>n>>d;
    if(n <= 2){
      cout<<1 % d;
      return 0;
    }
    while(n > 0){
      if((n & 1) == 0){
        mult(mp, mp, mp, d);
        n >>= 1;
      }
      n--;
      mult(mr, mp, mr, d);
    }
    cout<<mr[0][1]<<endl;
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru