Главная страница
    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.53 MB
Время: 0.046 c
2-1187873730
Алла_И
2007-08-23 16:55
2007.09.16
Копирование через Pointer


15-1187418761
systopler
2007-08-18 10:32
2007.09.16
Ошибка при открытии DLL-ки


15-1187267100
vlad_oshin
2007-08-16 16:25
2007.09.16
форум против компьютера . в шахматы.


3-1179329587
Sashok2007
2007-05-16 19:33
2007.09.16
Клиент-серверное приложение


2-1187705004
iXT
2007-08-21 18:03
2007.09.16
TToolBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский