Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

задача на вычисление количества чисел [D7, XP]


bogdan ©   (2005-09-27 21:06:00) 

Здравствуйте !
Вот опять приходится решать интересную задачку!
Дано 100 чисел. от 1 до 50. Найти сколько среди них чисел Фибоначчи и сколько чисел у которых первая значущая цифра в десятиричном виде 1 или 2.

Мои размышления малы: можно например упорядочить список по возрастанию, а потом - а потом не знаю что делать....
Надеюсь что вы подскажете. С уважением...


bogdan   (2005-10-11 15:35:00) [1]


> jack128 ©   (11.10.05 00:55) [8]

пасибо за совет


bogdan   (2005-10-11 15:34:00) [2]


> S@ska   (27.09.05 22:55) [1]

это вааще неправильно.
должно быть так
s:=a[i]-(a[i] div 10)*10 ;
   if s in [1,2] then


jack128   (2005-10-11 00:55:00) [3]

bogdan   (10.10.05 23:08) [7]
Я не понял вааше

for i := low(Arr) to high(Arr) do
 if IntToStr(arr[i])[1] in ['1', '2'] then // Первая цифра - единица или двойка

   

S@ska   (27.09.05 22:55) [1]
if (M[i] div 10)  in [1,2] then .... // Условие 2

а если M[i] = 2 то что будет ?


bogdan   (2005-10-10 23:08:00) [4]

Anatoly Podgoretsky ©
Я не понял вааше


Anatoly Podgoretsky   (2005-10-10 20:04:00) [5]

bogdan   (27.09.05 21:06)  
Вторая задача проще решается через строковое представление чисел
S[1] = N


bogdan   (2005-10-10 19:54:00) [6]

Привет !
Можете подсказать можно ли cделать следующее.
Можно ли представить масив как множество.? Поясняю:
Например есть у  нас переменная iцелочисленого типа. с помощью оператора
if i in [1,4,5] then....проверяем местится ли она(значение) в множестве 1,4,5.А вот если, например, у нас есть массив, то, чтоб не писать функцию проверки принадлежности значения переменной масиву, можно ли как-то преобразовать масив в множество и проверить так как написано выше?


bogdan   (2005-09-28 08:23:00) [7]

спасибо попробую


Сайбель Алексей   (2005-09-28 06:53:00) [8]

По моему особо мудрить здесь не надо, дано всего лишь 100 чисел. Никаких time limit'ов тут явно не будет чтобы переводить алгоритм, допусти из O(N*N) в lg(N). Так что в лоб сойдет.
Вот используй рекурсивную функцию для чисел фибоначчи:
x[1]=x[2]=1
x[n]=x[n-1]+x[n-2] при n > 2


Думкин   (2005-09-28 06:12:00) [9]

> Мои размышления малы:

В описанном - они вообще отсутствуют.

Интерес, если его тут проявить - в создании оптимального алгоритма. А в тупую - пишется - 10 минут с отладкой. Максимум.


S@ska   (2005-09-27 22:55:00) [10]


> Вот опять приходится решать интересную задачку!

)))))))
я думаю что проще сделать так
M   : array [0..49] of Integer; // Массив с введенными числами

for i := Low (M) to High (M) do
begin
if (M[i] div 10)  in [1,2] then .... // Условие 2

end;
А для чисел Фибоначчи содать просто массив этих чисел и на каждой итерации вызывать функцию, которая проверяла бы входит ли M[i] в даный массив или нет.
Сортировать по моему ничего не надо _))


Наверх

Титульная страница Поиск, карта сайта Написать письмо