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

Методы построения эффективных алгоритмов - C++

Восстановить пароль Регистрация
 
Doleran
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 3
28.10.2013, 23:55     Методы построения эффективных алгоритмов #1
Помогите пожалуйста написать эти 2 программы.

1. Человек поднимается по лестнице, ступая на следующую ступень, или перепрыгивая через одну или две ступени. Найти, сколькими способами он сможет подняться на N-у ступенек. Массивов не использовать.

2. Программа которая будет преобразовывать списки страниц в соответствующую последовательность номеров страниц.
Пример входных данных: 1,4-5,7-7,10-20
Пример выходных данных: 1,4,5,7,10,11,12,13,14,15,16,17,18,19,20

Помогите пожалуйста буду очень благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2013, 23:55     Методы построения эффективных алгоритмов
Посмотрите здесь:

C++ Построения суммы ряда
Построения на плоскости C++
Алгоритм построения функции C++
C++ Программирование алгоритмов
C++ Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
C++ Условия построения матрицы
C++ Анализ алгоритмов
C++ Методы построения простых больших чисел, теорема Поклингтона

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shtirliz72
200 / 160 / 38
Регистрация: 25.10.2013
Сообщений: 527
29.10.2013, 00:52     Методы построения эффективных алгоритмов #2
Цитата Сообщение от Doleran Посмотреть сообщение
Помогите пожалуйста написать эти 2 программы.

1. Человек поднимается по лестнице, ступая на следующую ступень, или перепрыгивая через одну или две ступени. Найти, сколькими способами он сможет подняться на N-у ступенек. Массивов не использовать.

2. Программа которая будет преобразовывать списки страниц в соответствующую последовательность номеров страниц.
Пример входных данных: 1,4-5,7-7,10-20
Пример выходных данных: 1,4,5,7,10,11,12,13,14,15,16,17,18,19,20

Помогите пожалуйста буду очень благодарен!
1. Используй рекурсию вида
C++
1
2
3
4
5
6
7
8
int stepsOnStair(int MaxStep, int curStep = 0)
{
    if (maxStep < curStep) return 0;
    if (maxStep == curStep) return 1;
    return stepsOnStair(MaxStep, curStep + 1) 
         + stepsOnStair(MaxStep, curStep + 2) 
         + stepsOnStair(MaxStep, curStep + 3);
}
2. Считывай строку, а затем её уже обрабатывай.
Yandex
Объявления
29.10.2013, 00:52     Методы построения эффективных алгоритмов
Ответ Создать тему
Опции темы

Текущее время: 04:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru