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

динамическое программирование и длинная рафиметика(не получается прикрутить длинную арифметику). - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определите все ли буквы слова различны. http://www.cyberforum.ru/cpp-beginners/thread224358.html
Определите все ли буквы слова различны.
C++ Замените в слове "му" на "а", а букву "ы" на "ца". Замените в слове "му" на "а", а букву "ы" на "ца". http://www.cyberforum.ru/cpp-beginners/thread224357.html
C++ График функции в Си/Си++
Есть ли возможность построить хоть элементарный график функций в Си/Си++???
выбор действий программы не через цифры C++
можно ли нажатием НЕ цифры дать указание программе? То есть: выход осуществляется нажатием клавишей "Esc" а при нажатии клавиши F1 появляется какой-то текст?
C++ Компилятор (wxDev-C++) не хочет воспринимать тип string http://www.cyberforum.ru/cpp-beginners/thread224335.html
Я начинающий, и только недавно начал изучать С++ по книге С. Девиса "С++ для чайников". И один с одним из примеров у меня возникли проблемы. Компилятор (wxDev-C++) не хочет воспринимать тип string. //òèï string #include <iostream.h> #include <string.h> int main() { //считываем первую строку string str1; cout<<"String #1: ";
C++ масив+цикл помогите решить следующую задачу. нужно ввести данные в массив (слово или связку слов) после их просто вывести на экран. Также, если не трудно, какой синтаксис у двойного условия в операторе if ?если можно на примере. Заранее спасибо! подробнее

Показать сообщение отдельно
trebor
1 / 1 / 0
Регистрация: 05.01.2011
Сообщений: 25

динамическое программирование и длинная рафиметика(не получается прикрутить длинную арифметику). - C++

05.01.2011, 16:56. Просмотров 2546. Ответов 9
Метки (Все метки)

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
#include <stdio.h>
 
int rekursia(int K,int N);
 
int main()  {
    int K,N;
    long n;
    /*(freopen("input.txt","r",stdin); /*перенаправление потоков для  
    freopen("output.txt","w",stdout);*/ /*работы с файлами
    scanf("%d %d",&K,&N);
    n=rekursia(K,N);
    printf("%d\n",n);
    
 
 
}
 
int rekursia(int K,int N)  { /* собственно сама функция
    if (N<0) 
        return 0;
    if(N==0)
        return 1;
    if(N==1) 
        return 1;
    return 2*rekursia(K,N-1)-rekursia(K,N-K-1);
}

Текст задачи:

В нашем зоопарке появился заяц. Его поместили в клетку, и чтобы ему не было скучно, директор зоопарка распорядился поставить в его клетке лесенку. Теперь наш зайчик может прыгать по лесенке вверх, перепрыгивая через ступеньки. Лестница имеет определенное количество ступенек N. Заяц может одним прыжком преодолеть не более К ступенек. Для разнообразия зайчик пытается каждый раз найти новый путь к вершине лестницы. Директору любопытно, сколько различных способов есть у зайца добраться до вершины лестницы при заданных значениях K и N. Помогите директору написать программу, которая поможет вычислить это количество. Например, если K=3 и N=4, то существуют следующие маршруты: 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2, 1+3, 3+1. Т.е. при данных значениях у зайца всего 7 различных маршрутов добраться до вершины лестницы.

Входные данные

В единственной строке входного файла INPUT.TXT записаны два натуральных числа K и N (1 ≤ K ≤ N ≤ 300). К - максимальное количество ступенек, которое может преодолеть заяц одним прыжком, N – общее число ступенек лестницы.

Собственно сама алгоритм: F(K,N)=2*F(K,N-1)-F(K,N-K-1).

Помогите, пожалуйста, с длинной арифметикой, желательно, чтобы использовался целочисленный массив.(потому как при больших K и N ответ не влазит ни в какой тип данных).

Премного благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru