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

Вниз

Решение простой задачи?   Найти похожие ветки 

 
Vrangel   (2007-08-17 14:52) [0]

Навеяно веткой про сумму ряда.
Задача:

С клавиатуры вводится число N большее нуля. Необходимо посчитать и вывести на экран сумму 1+2+3+...+(N-1)+N.

Как думаете, много ли школьников изучающих программирование в школе решат данную задачу с помощью цикла?


 
@!!ex ©   (2007-08-17 14:55) [1]

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


 
umbra ©   (2007-08-17 14:56) [2]


> простой

это не простая задача


 
Юрий Зотов ©   (2007-08-17 15:06) [3]

> Vrangel   (17.08.07 14:52)

Думаю, что многие смогут. Вопрос лишь в том, сколько итераций будет иметь этот цикл - N, N div 2, или еще сколько-то.


 
ari_9   (2007-08-17 15:06) [4]

вопрос в том, что школьник выберет цикл а нешкольник напишет сразу в ответ (N+1)*N/2 ?

думаю и среди профессионалов многие бы не забивая голову воткнули бы цикл


 
ari_9   (2007-08-17 15:08) [5]

вопрос в том, что школьник выберет цикл а нешкольник напишет сразу в ответ (N+1)*N/2 ?

думаю и среди профессионалов многие бы не забивая голову воткнули бы цикл


 
Jeer ©   (2007-08-17 15:08) [6]


> Решение простой задачи?


Это не наш, это америкосный метод.

Наш:  s = 0.5*n*(n+1)


 
DrPass ©   (2007-08-17 15:10) [7]


> что школьник выберет цикл а нешкольник напишет сразу в ответ

Вряд ли. Только если эту формулу они в свое время проходили и он ее помнит наизусть. Т.к. "сходу" выводить теоремы далеко не каждый профессиональный математик способен, а не школьник


 
Jeer ©   (2007-08-17 15:14) [8]


> далеко не каждый профессиональный математик


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


 
Romkin ©   (2007-08-17 15:30) [9]

DrPass ©   (17.08.07 15:10) [7] Фигня. Эту формулу обычный инженер должен выводить мгновенно. Школьник тоже, поскольку должен еще ее помнить :)))


 
Romkin ©   (2007-08-17 15:40) [10]

А вот, помниться, давненько я приводил задачу про телефонные номера, вот для нее действительно программист нужен.
Немного перефразирую: есть текстовый файл с семизначными телефонными номерами, по одному в строке, ряд цифр. Номера - почти все. Разумеется, лидирующих нулей нет.
Задача: написать программу, принимающую на вход этот файл и формирующую текстовый файл с перечислением номеров, которых нет в исходном.
Критерий: как можно быстрее, как можно меньше памяти использовать.
Помнится, похожую задачу первым решил McSimm :)
PS. Кто знает ответ - плиз, не торопиться. Дайте развлечься другим.


 
iXT ©   (2007-08-17 15:43) [11]

При условии что N > 0 Еще не следует, что оно целое.

=> Условий для решения недостаточно, ИМХО.

+ Нет условий на ограничение числа, ибо N может быть 2^255-1, см[2]


 
ari_9   (2007-08-17 15:51) [12]

iXT

какая разница, целое N или нет ?


 
umbra ©   (2007-08-17 15:54) [13]

можно считать список чисел отсортированным?


 
iXT ©   (2007-08-17 15:56) [14]

> [12] ari_9   (17.08.07 15:51)

Пусть n=5.5 Как должна будет работать программа? И какой ряд анализировать.

З.Ы. Разница не в N, а в условии :)


 
Romkin ©   (2007-08-17 15:56) [15]

umbra ©   (17.08.07 15:54) [13] Конечно нет :)
Более того: номера могут дублироваться :-Р
В общем, почти все числа от 1000000 до 9999999 в беспорядке с дубликатами. Получить те, которых нет.


 
iXT ©   (2007-08-17 15:57) [16]

> [13] umbra ©   (17.08.07 15:54)

Думаю что нет.


 
Romkin ©   (2007-08-17 15:58) [17]

Исходный вариант этой задачи, кстати - вывести отсортированный список этих номеров без повторений ;)


 
ari_9   (2007-08-17 15:58) [18]

umbra

если отсортирован, задача простая. просто двигаться по файлу, прибавляя к текущему числу 1, если следующая строка такая, то шаг вперед, нет - пишем в файл результтата


 
ferr ©   (2007-08-17 16:01) [19]

array[1..7]


 
ari_9   (2007-08-17 16:03) [20]

iXT

а, ну да. но там тогда ряд в середине "не сойдется", так как снизу идут числа 1, 2... а сверху 5.5, 4,5...


 
ferr ©   (2007-08-17 16:04) [21]

ой, array[1..9] т.е., ну короче понятно =)


 
Romkin ©   (2007-08-17 16:04) [22]

ferr ©   (17.08.07 16:04) [21] Это ты к чему?


 
ferr ©   (2007-08-17 16:05) [23]

тороплюсь очень, извиняйте за обилие сообщений, но думаю надо считать сколько раз какая цифра на какой позиции попадалась. т.е. O(1) памяти O(n) времени.

P.S. задачу вижу первый раз.


 
iXT ©   (2007-08-17 16:06) [24]

> [17] Romkin ©   (17.08.07 15:58)

Цикл от первого до последнего
 сравнивать вверх до тех пор пока следующая вверх <= выбранной, (если: < то перетасчтить; = то удалить)

Но мне он не очень нравиться, наверняка дело в математике.


 
iXT ©   (2007-08-17 16:10) [25]

> [24] iXT ©   (17.08.07 16:06)

Сравнивать можно тоже не тупо вверх, а изходя из значения выбранного, т.к. выше выбранного они отсортированы


 
Romkin ©   (2007-08-17 16:12) [26]

iXT ©   (17.08.07 16:06) [24] Ничего не понял. Повторяю, список не отсортирован. Или ты хочешь в текстовом файле что-то перетаскивать?
ferr ©   (17.08.07 16:05) [23] Торопишься.
Я ожидаю хотя бы наметков алгоритма, ну или текста простенькой утилиты командной строки, без всяких классов внутри, кстати. Они не нужны :)


 
Lacmus ©   (2007-08-17 16:14) [27]

>Romkin

TBits ?


 
Romkin ©   (2007-08-17 16:21) [28]

Lacmus ©   (17.08.07 16:14) [27] А без него сможешь? :)


 
palva ©   (2007-08-17 16:24) [29]

Можно записать в памяти 9999999 единичных битов и по мере чтения из файла номеров обнулять бит с прочитанным номером. Когда файл кончится, напичатать номера единичных битов.


 
Romkin ©   (2007-08-17 16:29) [30]

Не перевелись еще программисты :)
Впрочем, тут еще надо уметь обращаться с единичным битом...


 
palva ©   (2007-08-17 16:33) [31]


> palva ©   (17.08.07 16:24) [29]
>  напичатать

напечатать. Блин, никогда раньше такого не было. Надо завязывать с интернетом.


 
Algol   (2007-08-17 16:35) [32]


> Не перевелись еще программисты :)
> Впрочем, тут еще надо уметь обращаться с единичным битом.
> ..

Хм...типичная задача с хеш-таблицей... Это экзотика ?


 
TUser ©   (2007-08-17 16:38) [33]

> Romkin ©   (17.08.07 15:40) [10]

В дерево их записать?


 
Lacmus ©   (2007-08-17 16:41) [34]

>Romkin ©   (17.08.07 16:21) [28]

Разумеется смогу (возьму его исходники)


 
Romkin ©   (2007-08-17 16:49) [35]

Lacmus ©   (17.08.07 16:41) [34] :)
Легко и без них, если знаешь о двоичных or и and


> Хм...типичная задача с хеш-таблицей... Это экзотика ?

Хеширование в один бит. Самое трудное - догадаться. Но реализация у начинающего программиста тоже вызовет трудности.
О чем говорить, если на простейший вопрос (от Юрия Зотова):
Чему будет равно W после выполнения следующего кода процессором Intel x86? Ответ
объяснить.

type
PWord = ^word;
var
I: integer;
W: word;
begin
I := High(I) shr 8;
W := PWord(Integer(@I) + 2)^;
end;

навскидку, без компьютера, не отвечает на собеседовании практически никто? :(


 
@!!ex ©   (2007-08-17 16:53) [36]

Я бы не ответил на вопрос...
По идее 0...
Хотя я не очень хорошо понимаю...


 
palva ©   (2007-08-17 16:54) [37]

> навскидку, без компьютера, не отвечает на собеседовании практически никто? :(
Я тоже не могу ответить. Даже подумав.


 
Lacmus ©   (2007-08-17 16:55) [38]

>Romkin ©   (17.08.07 16:49) [35]
>навскидку, без компьютера, не отвечает на собеседовании практически никто? :(

Ошибка в одном бите ?


 
Romkin ©   (2007-08-17 16:56) [39]

Вот и я о чем. Вот еще задача:
быстренько пару строк, есть переменная a: byte, установить у нее 5-й бит (младший бит - №0). Есть переменная b: byte, сбросить у нее 6-й бит.


 
Romkin ©   (2007-08-17 16:57) [40]

Lacmus ©   (17.08.07 16:55) [38] Если бы, как правило ответы в стиле [36][37]...



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

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

Наверх




Память: 0.56 MB
Время: 0.03 c
2-1187708533
Евгений Р.
2007-08-21 19:02
2007.09.16
SendMessage для всего приложения


15-1187529515
vac
2007-08-19 17:18
2007.09.16
Вакансия в Киеве Delphi + SQL


2-1187794230
mfender
2007-08-22 18:50
2007.09.16
TIdIMAP и полное непонимание процесса.... ((((


15-1187375008
TUser
2007-08-17 22:23
2007.09.16
Уроки истории


2-1187717807
Alex.rus
2007-08-21 21:36
2007.09.16
CreateProcess