|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.06.2010, 10:02 | #1 |
Пользователь
Регистрация: 09.06.2010
Сообщений: 32
|
Указатели.Динамическая память
1) Заданы три натуральных числа А, В, С, которые обозначают число, месяц и год. Найти порядковый номер даты, начиная отсчет с начала года.
2) . Дано натуральное число N (N > 9). Определить сумму цифр в первой половине числа (старшие разряды). Пример. N = 12 345 678. Сумма составляет 1 + 2 + 3 + 4 = 10. 3) Дано целое n > 2. Напечатать все простые числа из диапазона [2, n]. 4) Дано натуральное число N. Определить количество цифр в цифровой записи данного числа, которые имеют наименьшее значение. Пример. N = 4548. Количество цифр с наименьшим значением равно двум (две цифры 4). 5) Используя все цифры от 1 до 9 по одному разу и операции сложения и вычитания, получить в сумме 100, при условии, что цифры появляются в возрастающем или убывающем порядке. Например, 123 + 4 - 5 + 67 - 89 = 100, 9 – 8 + 76 – 5 + 4 + 3 + 21 = 100. Народ решите пожалуйста хотя бы 2-3 задачки.Очень надо отчёт сдать |
11.06.2010, 10:51 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
первая задача:
Код:
3-я задача. буквально вчера/позавчера решение было на форуме. поищите. А почему заголовок такой?! Где здесь "указатели"? Где - "Динамическая память" ?! Последний раз редактировалось Serge_Bliznykov; 11.06.2010 в 18:38. |
11.06.2010, 11:39 | #3 | |
Пользователь
Регистрация: 09.06.2010
Сообщений: 32
|
Цитата:
Эта задача решается с помощью указателей.То есть используется такой ^. Последний раз редактировалось Stilet; 11.06.2010 в 11:57. |
|
11.06.2010, 14:40 | #4 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Я нашёл решение третьей задачи на форуме, однако почему-то данное решение у меня не работает!
Я написал свою программку и, после пятнадцатиминутных мучений она заработала так как надо: Код:
|
11.06.2010, 21:51 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
_-Re@l-_
Вы уж не обижайтесь, но и пройти мимо такого я не могу! Функция написано _крайне_ неоптимально! 1) зачем цикл крутить до M-1 когда достаточно до sqrt(M) 2) а уж зачем считать в X сколько делителей?! Как только же первый делитель встретили - всё, дальше можно не продолжать! Представить, для числа 2000000 сколько выполнится лишних делений, наращиваний X ?!! предлагаю такую функцию определения простоты числа: Код:
|
12.06.2010, 09:05 | #6 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
А почему именно до корня из x?
И ещё: я проверил вашу программу, ввёл 20000, и программа выводит все числа от 2 до 20000 Последний раз редактировалось _-Re@l-_; 12.06.2010 в 09:26. |
12.06.2010, 10:08 | #7 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Пусть есть число X Тогда X = SQRT(X) * SQRT(X) и пусть имеются такие целые A и B, что X = A * B очевидно, что если A > SQRT(X) Тогда B МЕНЬШЕ SQRT(X) поэтому если мы не нашли делитель меньший корня из числа, то дальше уже можно не искать, его не будет! Цитата:
Всё РАБОТАЕТ! На всякий случай, выкладываю ПОЛНЫЙ код: Код:
Последний раз редактировалось Serge_Bliznykov; 12.06.2010 в 10:17. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатели. Динамическая память. | Kazik | Помощь студентам | 2 | 18.01.2014 00:17 |
Динамическая память | MadDog__ | Помощь студентам | 2 | 22.11.2007 00:05 |