Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Алекса07
0 / 0 / 0
Регистрация: 03.01.2019
Сообщений: 30
1

Опасные ступеньки: количество способов

14.07.2019, 02:48. Просмотров 308. Ответов 4
Метки нет (Все метки)

есть код,но проходит 9 из 15, помогите, пожалуйста

условие:
Вася каждый день поднимается по одной и той же лестнице. Одним шагом он может встать на следующую ступеньку или перешагнуть через одну ступеньку. Он уже знает, сколькими способами он может подняться на верхнюю ступеньку. Но недавно он обнаружил, что некоторые ступеньки обветшали, и ступать на них небезопасно. Он составил список таких ступенек, и теперь интересуется, сколькими способами можно подняться по лестнице, не наступая на эти ступеньки.

Входные данные
В первой строке вводится одно натуральное число N (N ≤ 40): количество ступенек.

Во второй строке вводится одно натуральное число K (K ≤ N): количество опасных ступенек.

В третьей строке вводятся K различных натуральных чисел в диапазоне от 1 до N: номера опасных ступенек.

Выходные данные
Выведите одно число: количество способов попасть на N-ю ступеньку.

Примеры
входные данные
10
3
5 1 2
выходные данные
0
входные данные
3
1
2
выходные данные
1
входные данные
7
2
3 5
выходные данные
2




Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var N,K,i,x,y,res:integer;
a:array[1..40] of integer;
begin
res:=1;
readln(n);
readln(k);
for i:=1 to 40 do a[i]:=1;
for i:=1 to k do 
begin
read(x);
a[x]:=0;
end;
for i:=1 to n do
if a[i]+a[i+1] = 0 then res:=0;
if res=1 then 
begin
for i:=3 to n+1 do
if a[i]<>0 then
a[i]:=a[i-1]+a[i-2];
end;
if res>0 then
writeln(a[n+1],' ')
else writeln('0');
end.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2019, 02:48
Ответы с готовыми решениями:

Количество способов сортировки
Помогите решить задачу. Имеются две картины. Так же вводится число офисов (2&lt;=N&lt;=100). Нужно найти...

Определите возможное количество способов прочтения строки.
Пожалуйста, помогите с написанием программы на паскале! Пользователь вводит произвольную строку...

Определить количество способов перемещения по смежным граням куба
Может кто-то помочь срочно решить олимпиадную задачку. Поверхность куба отрезками,...

Найти количество способов, которыми можно составить вес K из 10 гирь
Пусть имеются десять гирь весом a1,a2..a10. Обозначим через Ck число способов ,которыми можно...

Разработать рекурсивную функцию, определяющую количество способов продвижения шашки на n-ю клетку.
Имеется полоска клетчатой бумаги шириной в одну клетку и длиной в n клеток. На первой клетке...

4
JuriiMW
2403 / 1334 / 1725
Регистрация: 10.12.2014
Сообщений: 5,245
14.07.2019, 13:29 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
begin
  var n := ReadInteger;
  var s : array of integer;
  var b : array of boolean;
  SetLength(s, n+1);
  SetLength(b, n+1);
  loop ReadInteger do
    b[ReadInteger-1] := True;
    
  s[0] := 1;
  for var i := 0 to n-2 do
    if not b[i] then
      begin
        if not b[i+1] then s[i+1] += s[i];
        if not b[i+2] then s[i+2] += s[i];
      end;
   if not (b[n] or b[n-1]) then
     s[n] += s[n-1];
   s.Last.Println;
end.
1
Arterwk
0 / 0 / 0
Регистрация: 14.07.2019
Сообщений: 7
15.07.2019, 18:17 3
Алекса07, вы решили? не могли бы поделиться решением?
0
JuriiMW
2403 / 1334 / 1725
Регистрация: 10.12.2014
Сообщений: 5,245
16.07.2019, 03:44 4
Arterwk, а моё решение вас не устроило?
Ах, да! Оно не на питоне и не плас-плас… ;–(
0
mr-Crocodile
70 / 50 / 21
Регистрация: 19.03.2019
Сообщений: 165
17.07.2019, 10:21 5

Не по теме:

Цитата Сообщение от JuriiMW Посмотреть сообщение
Ах, да! Оно не на питоне и не плас-плас… ;–(
особенно с учётом того, что это решение легко переписать "один в один" на чём угодно - лишь бы массивы были в языке.



Arterwk, так чем тебе решение не понравилось?
Тем, что ты алгоритм не понял? Или просто циклы и массивы не любишь? :d
0
17.07.2019, 10:21
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2019, 10:21

Определить количество способов оплаты N рублей с помощью монет достоинством 1, 2, 5, 10 рублей
Дано натуральное число N (N&lt;100). Определить количество способов оплаты N рублей с помощью монет...

Сколькими способами Вася может добраться до последней ступеньки
Здравствуйте!Помогите решить данную задачу,спасибо! Вася стоит на первой ступеньке...

Опасные ступеньки: количество способов
Вася каждый день поднимается по одной и той же лестнице. Одним шагом он может встать на следующую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru