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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ProgOleg
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 2
#1

Найти количество способов - C++

08.12.2013, 17:56. Просмотров 419. Ответов 2
Метки нет (Все метки)

Есть две задачи:
1. Фишка может перемещаться по полю длиной X только вперед. Размер каждого шага не должен превышать K. Найдите количество способов, которыми фишка может пройти от поля под номером 1 к полю Х.
2. Фишка может перемещаться по полю длиной Х только вперед. Размер каждого шага не должен превышать K. Найдете количество способов, которыми фишка может пройти от поля под номером 1 до поля Х/2.
Буду рад решению хотя бы одной!
Так как я НЕ программист, хотелось бы услышать подробное объяснение кода программы. Надеюсь на понимание!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 17:56     Найти количество способов
Посмотрите здесь:

C++ Подсчитать количество способов замостить шахматную доску доминошками
C++ Найти количество способов представления заданного числа N в виде суммы степеней двойки
Найти количество пятниц с 1 января 2001 по 31 декабря 2010. И найти количество пятниц, 13 C++
Найти количество двух- и количество трехразрядных чисел в заданной последовательности C++
Клетчатая доска - Определить количество способов добраться до последней клетки N-M C++
C++ Подсчитать количество способов размещения, чтобы между числами k было ровно k других чисел
Вычислить количество способов группировки K предметов из N при больших N C++
C++ Составить программу, которая, по данным N и K, вычисляет количество способов группировки K предметов из N
Найти количество способов выбрать трех животных для международной выставки C++
Определить количество способов укладки плиток на оставшиеся места C++
C++ Найти количество положительных и количество отрицательных чисел в исходном наборе
Даны три целых числа. Найти количество положительных и количество отрицательных чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ProgOleg
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 2
09.12.2013, 21:32  [ТС]     Найти количество способов #2
Ребят, все ещё нужна ваша помощь!

Немного ссылок по теме:
Первая|Вторая|Третья

Вопрос: как из всего этого сделать одну нормально работающую программу?

Никак не пойму, как она должна работать... В каком направлении двигаться? Что почитать?
Много кто интересуется подобной задачей, а вот толкового решения пока не нашел.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.12.2013, 05:07     Найти количество способов #3
Цитата Сообщение от ProgOleg Посмотреть сообщение
Буду рад решению хотя бы одной!
первая:
создаете массив T[] размером X+1. Все элементы массива обнуляете. X[0] делаете равным 1. Затем так:
C++
1
2
3
4
for(int i=1; i<=X; i++)
    for(int j=i-K; j<i; j++)
        if(j>=0)
            T[i]+=T[j];
По окончании цикла ответ будет в T[X].
Цитата Сообщение от ProgOleg Посмотреть сообщение
В каком направлении двигаться? Что почитать?
Почитайте про динамическое программирование.
Yandex
Объявления
10.12.2013, 05:07     Найти количество способов
Ответ Создать тему
Опции темы

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