5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
|
||||||
1 | ||||||
Выведите в выходной файл округленное до n знаков после десятичной точки число E05.08.2013, 11:17. Показов 8908. Ответов 53
Метки нет (Все метки)
Как пишутся очень короткие программы на C++ или C (менее 150 символов, не считая пробелов и табуляций)?
Например, задача
0
|
05.08.2013, 11:17 | |
Ответы с готовыми решениями:
53
Вывести в выходной файл округленное до n знаков после десятичной точки число E Округлить число до 25 знаков после десятичной точки Вывести в файл число с заданным количеством знаков после точки Округление числа до n знаков после десятичной точки |
Higher
|
||||||
07.08.2013, 10:46 | 41 | |||||
acmp вчера сильно глючил, там один проверяющий сервер (медленный) стабильно выдавал WA\TLE\RE\ETC.
Решалось одновременной посылкой 3-4 исходников. О, видимо вайтспейсы все-таки разбанили... Ну или их вообще не банили >_< У меня на 130 символов тоже вайтспейсы, но только там все делается в лоб (без system). А, если не секрет, какой язык использовался в system? P.S. в дом-школа-дом обновил рекорд до 113 символов. А именно, сократил эту строку
0
|
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
07.08.2013, 10:53 | 42 |
Да, я заметил. Но если хорошо подумать, то есть ещё другой символ, который не считается.
Я думал, это уже понятно: в решении несколько тысяч пробелов. Но если будет больше 16k, то они все посчитаются в размере. В смысле можно ли какой-то командой получить экспоненту? Наверное, нет. Добавлено через 2 минуты Не, даже табуляция в строке считается. Но всё-таки там не учли одну возможность, которую можно эксплойтить. Пишется и выполняется bat файл. (Без промежуточного bat'а не получилось.)
0
|
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
07.08.2013, 11:27 | 44 |
Внутри закавыченной строки точно считается, в остальных местах - не проверял.
0
|
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
|
|
07.08.2013, 13:24 [ТС] | 46 |
Вот пример исходника, где табуляция считается:
0
|
3 / 3 / 3
Регистрация: 06.08.2013
Сообщений: 23
|
|||||||||||
09.08.2013, 01:13 | 47 | ||||||||||
Ребята, читал книгу Лафоре, главу про функции. Он там пишет, что можно при объявлении функции не указывать тип возвращаемого значения и тогда по умолчанию тип будет int!
Т.е. вместо
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
09.08.2013, 09:30 | 48 |
Где-то можно, а где-то нельзя. Все зависит от компилятора. Например VS2012 не позволяет упускать тип возвращаемого значения.
И так как ТС постоянно изменял конечный код, добавляя тип, то и компилятор на проверяющем серве тоже не позволяет.
0
|
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
|
|
20.08.2013, 17:00 | 49 |
Если бы табуляция не считалась, то можно было бы упаковать что угодно (практически неограниченное количество информации) в сотню символов. То есть берём любой исполняемый файл, перекодируем его заменяя все биты равные 0 пробелом, а биты равные 1 - табуляцией. Останется только написать распаковщик.
Добавлено через 1 минуту Видимо кто-то очень умный просёк это и админ оперативно закрыл брешь.
0
|
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
20.08.2013, 17:08 | 50 |
Ладно, подсказываю дальше. Возврат каретки всё ещё не считается в количестве символов, но при этом их компилятор нормально его переваривает внутри строки. И это вряд ли пофиксят, потому что тут надо парсить исходник с учётом всех правил написания строк и комментариев в конкретном языке.
Так я и сделал, но вот облом: эта версия компилятора не переваривает строковые литералы больше примерно 2048 символов, так что кроме кода распаковки пришлось максимально уменьшать и кодируемый файл.
0
|
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
|
||||||
20.08.2013, 17:20 | 51 | |||||
Код
a=' '+ ' '+ ... ' '; Добавлено через 6 минут Я ещё так пытался делать: пишу всё решение асм-вставкой, затем компилирую и вставляю так
0
|
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
20.08.2013, 17:45 | 53 |
Код базонезависимый был? Я как-то давно пытался сделать примерно так. Насколько помню, в простом случае работало, но поиск функций в kernel32 не прокатил (у себя на компе работало нормально). Но вообще, мне кажется, если аккуратно всё сделать, то может получиться. В конце концов, можно вытащить адрес функций в их системе и статически забить в код.
Это я понял, но так размер быстро растёт. Мой метод кодировки использует намного больше 8 байт на один кодируемый, зато декодер меньше.
0
|
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
|
||||||||||||||||
20.08.2013, 18:39 | 54 | |||||||||||||||
P.S. этот код сейчас на первом месте в топе Добавлено через 12 минут Ещё пытался находить в адресном пространстве пустоты и использовать их как буффер для результирующей строки, но кажется это не очень помогло. Добавлено через 5 минут А вот - нашёл Кликните здесь для просмотра всего текста
И финальный вариант Кликните здесь для просмотра всего текста
0
|
20.08.2013, 18:39 | |
20.08.2013, 18:39 | |
Помогаю со студенческими работами здесь
54
Выведите первую цифру числа после десятичной точки Вычислить функцию с точностью 6 знаков после десятичной точки Дано вещественное число, проверить является ли это число симметричным относительно положения точки до двух знаков после запятой. Найдите такое число x, что x^2+√x=C , с точностью не менее 6 знаков после точки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |