Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

задача на вычисление количества чисел   Найти похожие ветки 

 
bogdan   (2005-09-27 21:06) [0]

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

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


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


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

)))))))
я думаю что проще сделать так
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] в даный массив или нет.
Сортировать по моему ничего не надо _))


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

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

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

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


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

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


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

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


 
bogdan   (2005-10-10 19:54) [5]

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


 
Anatoly Podgoretsky ©   (2005-10-10 20:04) [6]

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


 
bogdan   (2005-10-10 23:08) [7]

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


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

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-11 15:34) [9]


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

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


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


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

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



Страницы: 1 вся ветка

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
2-1128313620
Domix
2005-10-03 08:27
2005.11.06
Консоль + Графика


2-1129281738
ABS
2005-10-14 13:22
2005.11.06
TAdoConnection


14-1129287728
! Han!
2005-10-14 15:02
2005.11.06
Материал


9-1117662227
Темас
2005-06-02 01:43
2005.11.06
Реалистичная траектория падения снежинки Как сделать ?


2-1129025875
Jolik
2005-10-11 14:17
2005.11.06
Windows запрещает доступ к реестру :(