170 похожих чатов

Ребят, всем привет, есть такая задача: Буратино поднимается по лестнице из

трех пролетов, по 5, 8 и 9 ступеней.

Поднимаясь по лестнице он может наступить на следующую ступень, перешагнуть одну ступеньку, или перешагнуть через две ступеньки.

Однако он обязательно должен наступить один раз на площадку между пролетами.

Сколькими различными способами он сможет подняться по лестнице.

Пример одного из способов: перешагнуть две ступеньки, перешагнуть одну ступеньку (оказались на первом пролете), два раза перешагнуть через две ступеньки и два раза ступить на следующую ступеньку (оказались на втором пролете), три раза перешагнуть через две ступеньки (оказались в конце лестницы)

Решение дать в виде php функции, которая бы принимала три параметра - количество ступенек в каждом из трех пролетов


Я ее представляю следующим образом:
У меня есть 1 ступенька - кол-во способов - 1
2 ступеньки - 2, 3 ступеньки - 4, 4 -5, 5 - 8, 6 -13 и тд

Я так понимаю это отсылка к Фибоначи.
потом просто суммирую три пролета.

Вот решение на php:

<?php
//возвращает n-е число Фибоначчи.
function fib($n) {
$a = 1;
$b = 1;
for ($i = 3; $i <= $n; $i++) {
$c = $a + $b;
$a = $b;
$b = $c;
}
return $b;
}

//количество способов которыми можно подняться по леснице из 3-ех пролётов
function upStairs($stairs1 = 5, $stairs2 = 8, $stairs3 = 9) {
return fib($stairs1) + fib($stairs2) + fib($stairs3);
}

echo 'Количество различных способов, которыми можно подняться по лестнице: ' . upStairs(1, 1, 1);

Мне ответили «Очень близко.
Но есть небольшая ошибка
в конфигурации 1 1 1 код вернет 3
в реальности ответ 1..»

Я не могу понять как можно подняться одним способом если нужно обязательно наступить на пролет, как сказано в условии задачи? Помогите разобраться пожалуйста

3 ответов

78 просмотров

Это на собеседовании тебе дали?) Или сам для себя решаешь?

может имеется виду разных? у тебя получается везде по одно лестнице? как бы одинаковые способы

тебе нужно еще после этого искать уникальные

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта