Форум: "Начинающим";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Вниззадача на вычисление количества чисел Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c