IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на количетсво вариантов заполнение площади, Есть 1х1 1х2 плитки
Nodl
сообщение 15.09.2006 21:12
Сообщение #1


Жгучий чел
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  -1  +


Условия:
Есть плитки размером 1х1 и 1х2. сколько вариантов заполнение ими площади размерами 2хN? Ограничения на кол-ство плиток нет, плитки 1х2 используються только 1х2(горизонтально), но не 2х1.
Прошу помочь


--------------------
Я - странный человек
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
virt
сообщение 15.09.2006 22:23
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


так как плитки 2х1 не используются ,то количество вариантов заполнения площади(2хn) это количество вариантов заполнения площади(1хn) возведенное в квадрат. А для заполнения 1хn количество вариантов это число фибоначи с номером n. Общая формула :: F(n) = F(n - 1) + F(n - 2). Например для n = 1 ответ 1 ,n = 2 ответ 2 ,n = 3 ответ 3 ...,n = 7 ответ 21.

volvo по моему и код рабочий приводил ,поиском по форуму найди.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 18.09.2006 17:57
Сообщение #3


Гость






о спасибо большое! ну у меня такой вот простенкий алгоритмик вышел:
a:=1; b:=1; c:=0;
for i:=1 to n-1 do begin c:=a+b; a:=b; b:=c; end;
if n=1 then ans:=sqr(b) else ans:=sqr©;

если можно написать по лучче то скажите как плз. А то я учусь, пишу как удобно и не знаю стандартов. Еще раз спасибо
 К началу страницы 
+ Ответить 
Nodl
сообщение 18.09.2006 17:59
Сообщение #4


Жгучий чел
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  -1  +


забыл залогится... Кстати там не © а ( c ).


--------------------
Я - странный человек
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.09.2006 18:16
Сообщение #5


Гость






Какие значения может принимать N? Если больше 47, то твой алгоритм начнет выдавать неверные результаты: LongInt при N > 47 переполняется... Придется задействовать длинную арифметику...
 К началу страницы 
+ Ответить 
Nodl
сообщение 18.09.2006 18:22
Сообщение #6


Жгучий чел
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  -1  +


Не у меня N от 1 до 1000. Но даже если я напишу с Божьей помощю длинную арифметику ( с ней у меня всегда проблемы потому что проблемы с динамикой smile.gif ) то у меня жесткое ограничение по времени. И вообще по тем тестам что я сдаю там N принимает не большие значение.


--------------------
Я - странный человек
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"