Фишка может двигаться по полю длины N только вперед. Длина хода фишки не более K. Найти число различных путей, по которым фишка может пройти поле от начала до конца.
Пример. N=3, K=2
Возможные пути:
1,1,1
1,2
2,1
Ответ: 3.
Кто знаэт, может не всьо задачу, может просто совет датите, крч, любой ответ полезен
Другие языки программирования и технологии
Помогите с задачей на паскале
при N = 3, у нас 3 пути... если N = 4, тогда...
1,1,1,1
2,1,1
1,2,1
1,1,2
2,2
что равно 5-ти путям
а при N = 2 у нас
1,1
т. е. один путь
значит...
N кол-во путей
2, 1
3, 3
4, 5
Значит... у нас арифметическая последовательность...
program podschet;
var N,puti:integer;
begin
read(N);// меньше двух - не будет ни одного пути.
if N >= 2 then puti:=1; // начало последовательности
if N >= 3 then
for var i := 3 to N do // 3, т. к. при i = 2, puti равен 1.
begin
puti:= puti + 2;
end;
write(puti);//выведет 0 при N < 2
end.
(не... не правильно, при N 5, у нас 8 путей... завтра додумаю...)
1,1,1,1
2,1,1
1,2,1
1,1,2
2,2
что равно 5-ти путям
а при N = 2 у нас
1,1
т. е. один путь
значит...
N кол-во путей
2, 1
3, 3
4, 5
Значит... у нас арифметическая последовательность...
program podschet;
var N,puti:integer;
begin
read(N);// меньше двух - не будет ни одного пути.
if N >= 2 then puti:=1; // начало последовательности
if N >= 3 then
for var i := 3 to N do // 3, т. к. при i = 2, puti равен 1.
begin
puti:= puti + 2;
end;
write(puti);//выведет 0 при N < 2
end.
(не... не правильно, при N 5, у нас 8 путей... завтра додумаю...)
Саша Чуркин
Ты забыл про K.
Вроде так http://pastebin.com/N12wSeNb
1. заводим массив из N+1 чисел (0..N) и записываем его нулями
2. в нулевую ячейку пишем 1
3. запускаем цикл с нулевой по ячейку с номером N (обозначим эту ячейку как A)
3.1. запускаем цикл на K ячеек вперёд (обозначим эту ячейку как B)
3.1.1. прибавляем к каждой ячейке B значение, записанное в ячейке A
4. выводим значение, записанное в ячейке N
Если нигде не ошибся, работающий алгоритм в 4 строчки кода + ещё несколько строк для ввода данных.
P.S. разумеется надо также проверять факт выхода за пределы массива, и если он произошёл то запись в шаге 2.1.1 не производить.
P.P.S Первый раз с алгоритмом ошибся. Сейчас исправил
2. в нулевую ячейку пишем 1
3. запускаем цикл с нулевой по ячейку с номером N (обозначим эту ячейку как A)
3.1. запускаем цикл на K ячеек вперёд (обозначим эту ячейку как B)
3.1.1. прибавляем к каждой ячейке B значение, записанное в ячейке A
4. выводим значение, записанное в ячейке N
Если нигде не ошибся, работающий алгоритм в 4 строчки кода + ещё несколько строк для ввода данных.
P.S. разумеется надо также проверять факт выхода за пределы массива, и если он произошёл то запись в шаге 2.1.1 не производить.
P.P.S Первый раз с алгоритмом ошибся. Сейчас исправил
Похожие вопросы
- ПОМОГИТЕ С ЗАДАЧАМИ В ПАСКАЛЕ
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- ПОМОГИТЕ НАПИСАТЬ ЗАДАЧИ НА ПАСКАЛЕ
- Помогите написать задачи в паскале!!!!
- Помогите решить задачу в паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Уважаемые!Помогите решить задачу по Паскалю,пожайлуста!
- Помогите плиз!!Задача в Паскале
- кто может решить и кому не лень помогите с задачей по паскалю, сам плохо с двумерными массивами лажу