Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/37: Рейтинг темы: голосов - 37, средняя оценка - 4.78
-3 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78

Сократить код. Задача про сравнение символов

02.01.2014, 21:07. Показов 8879. Ответов 81
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
набросал решение вышесказаной задачи вот код
C++
1
2
3
4
5
6
7
#include <fstream>
main(int k){
    std::fstream i("input.txt"),o("output.txt", 2);
    i>> k;
    k = k * 5 - 5;
    k > 720 ? o<<"NO" : o <<k / 60 << " "<< k % 60;
}
с удивлением обнаружил что я на 6 месте по коду
Размер кода: 119
но есть код (с++) и короче 114 символов как?
помогите мне сократить код (убрать 4-5 символов)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2014, 21:07
Ответы с готовыми решениями:

Сократить код. Задача про туриста
всем привет есть задача Турист (Время: 1 сек. Память: 16 Мб Сложность: 22%) Гена собирается на туристический слет учеников своей...

Сократить код до 101 - 120 символов
есть задача ! есть код #include &lt;fstream&gt; int main(){ std::fstream q(&quot;input.txt&quot;),o(&quot;output.txt&quot;,2); int n,a,i,j,s=0; q&gt;&gt;n;...

задача про последовательность символов
Здравствуйте, помогите пожалуйста решить задачку на шарпе. На паскале задаче решена, а вот с шарпом у меня беда. Пусть задана...

81
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.01.2014, 16:09
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от костя666674555 Посмотреть сообщение
int void самое главное что бы acmp.ru принял
удачи в устройстве на работу
2
-3 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
19.01.2014, 21:59  [ТС]
есть задача [Задание нужно публиковать на форуме. Ссылки не допускаются]
и есть код
C++
1
2
3
4
5
6
#include <fstream>
main(int n){
std::fstream f("input.txt"),q("output.txt",2);
f>>n;
q<<(n>1 ? n%2!=1 ? n/2 : n : 0);
}
размер коды 103 символа
а лутший результат 89 как?
сократить код!
0
Модератор
Эксперт С++
 Аватар для zss
13799 / 10990 / 6493
Регистрация: 18.12.2011
Сообщений: 29,291
19.01.2014, 22:20
Если перевернуть условие, то можно чуть-чуть сократить
C++
1
q<<(n<=1?0:n%2?n:n/2);
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.01.2014, 22:22
C++
1
2
3
4
5
6
#include <fstream>
main(int n){
std::fstream f("input.txt"),q("output.txt",2);
f>>n;
q<<(n&1?n-!(n-1):n/2);
}
Добавлено через 1 минуту
C++
1
2
3
4
5
6
#include <fstream>
main(int n){
std::fstream f("input.txt"),q("output.txt",2);
f>>n;
q<<(n&1?n-1?n:0:n/2);
}
1
-3 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
20.01.2014, 14:50  [ТС]
C++
1
2
3
4
5
6
#include <fstream>
main(int n){
std::fstream f("input.txt"),q("output.txt",2);
f>>n;
q<<(n&1?n-1?n:0:n/2);
}
100 символов

Добавлено через 21 секунду
ещё бы символ((
0
20.01.2014, 15:55
 Комментарий модератора 
Ознакомьтесь внимательно с Правилами нашего Форума. Особое внимание уделите пункту #5.19 - Запрещено создавать темы в виде ссылок на задания или коды программ, расположенные на других сайтах.
0
Модератор
Эксперт С++
 Аватар для zss
13799 / 10990 / 6493
Регистрация: 18.12.2011
Сообщений: 29,291
20.01.2014, 16:42
Вопрос по существу задачи:
зачем проверяется, что n равно нулю?
Ведь ничему не противоречит предположение, что,
если разделить торт на ноль частей, то и получим ноль кусков.
C++
1
2
3
4
5
6
#include <fstream>
main(int n){
std::fstream f("input.txt"),q("output.txt",2);
f>>n;
q<<(n&1?n:n/2);
}
0
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 7
20.01.2014, 17:53
В какой IDE можно скомпилировать эту программу?

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
#include <fstream>
 
main(int n)
{
    std::fstream f("input.txt"),q("output.txt",2);
    f>>n;
    q<<(n&1?n:n/2);
}
Ошибка на 5-й строке
error: no matching function for call to 'std::basic_fstream<char>::basic_fstream (const char [11], int)'
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
20.01.2014, 17:56
Зюфпъ, а если вместо 2 вставить std::ios::out?
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
20.01.2014, 18:00
Цитата Сообщение от Зюфпъ Посмотреть сообщение
В какой IDE можно скомпилировать эту программу?
в Microsoft Visual C++ 7.1 должно пойти
0
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 7
20.01.2014, 18:02
С std::ios::out заработала
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.01.2014, 18:03
Цитата Сообщение от zss Посмотреть сообщение
зачем проверяется, что n равно нулю?
там вообще-то проверка на n = 1.
Мой брат всегда при дележке торта говорит: лучше всего - резать на одного
Потому как резать то вообще не надо. Кстати, помню что в данном вопросе в 10 тесте как раз и идет проверка на данный момент. На вход идет 1, на выход ожидается 0.
1
-3 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
20.01.2014, 18:23  [ТС]
Цитата Сообщение от zss Посмотреть сообщение
Вопрос по существу задачи:
зачем проверяется, что n равно нулю?
Ведь ничему не противоречит предположение, что,
если разделить торт на ноль частей, то и получим ноль кусков.
C++
1
2
3
4
5
6
#include <fstream>
main(int n){
std::fstream f("input.txt"),q("output.txt",2);
f>>n;
q<<(n&1?n:n/2);
}
эх вронг на 10 тесте
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
20.01.2014, 19:20
C++
1
n >> !(n & 1) - !~-n
1
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 7
20.01.2014, 19:23
костя6667455, эта программа не работает. Надо по правилам писать, а не с ошибками

Добавлено через 1 минуту
Я сейчас еще проверил в Визуал Студио. И тоже не работает. Нужно что бы main() возвращала значение
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.01.2014, 19:29
Цитата Сообщение от Зюфпъ Посмотреть сообщение
костя6667455, эта программа не работает. Надо по правилам писать, а не с ошибками
Он все сказал тут:
Сократить код. Задача про сравнение символов

Да, то что написано выше проходит тесты на acmp, но за использование конструкций как у Somebody в реальных проектах отрывают руки.
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
20.01.2014, 20:07
89:
C++
1
2
3
4
5
#include <ios>
main()
{
  system("for /f %n in (input.txt) do set /a %n ^>^> !(%n % 2) - !~-%n >output.txt");
}
Добавлено через 36 минут
80 символов сделал. Стандартный acmp'шный хак: вся смысловая нагрузка в строке, состоящей из пробелов и переводов строки (CR внутри кавычек VS нормально переваривает); эта строка декодируется и отправляется в system(). Тут вся суть в том, чтобы придумать такой метод кодирования, чтобы получить декодер как можно проще - думайте, если кому интересно.
6
-3 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
21.01.2014, 08:26  [ТС]
Somebody, блин хоть убейте а код не пойму
0
-3 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
28.01.2014, 21:11  [ТС]
условие
Кликните здесь для просмотра всего текста
Шахматы
(Время: 1 сек. Память: 16 Мб Сложность: 18%)

Шахматы Совсем недавно Вася занялся программированием и решил реализовать собственную программу для игры в шахматы. Но у него возникла проблема определения правильности хода конем, который делает пользователь. Т.е. если пользователь вводит значение «C7-D5», то программа должна определить это как правильный ход, если же введено «E2-E4», то ход неверный. Так же нужно проверить корректность записи ввода: если например, введено «D9-N5», то программа должна определить данную запись как ошибочную. Помогите ему осуществить эту проверку!

Входные данные

В единственной строке входного файла INPUT.TXT записан текст хода, который указал пользователь. Пользователь не может ввести строку, длиннее 5 символов.
Выходные данные

В выходной файл OUTPUT.TXT нужно вывести «YES», если указанный ход конем верный, если же запись корректна (в смысле правильности записи координат), но ход невозможен, то нужно вывести «NO». Если же координаты не определены или заданы некорректно, то вывести сообщение «ERROR».
Примеры
№ INPUT.TXT OUTPUT.TXT
1 C7-D5 YES
2 E2-E4 NO
3 BSN ERROR

код:
C++
1
2
3
4
5
6
7
8
#include <fstream>
#include <string>
main() {
  std::fstream q("input.txt"),o("output.txt", 2);
  std::string a;
  q>>a;
  o<<(a.length() < 5 || a[2] != '-' || a[0] < 'A' || a[0] > 'H' || a[3] < 'A' || a[3] > 'H' || a[1] < '1' || a[1] > '8' || a[4] < '1' || a[4] > '8' ? "ERROR" : abs((a[0] - a[3]) * (a[1] - a[4])) != 2 ? "NO" : "YES");
}
Размер кода: 264 (как короче?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.01.2014, 21:11

Стоит задача сравнение и подсчета символов строки.
Стоит задача сравнение и подсчета символов строки. Получается, сравнить только всю строку. Подскажите пожалуйста, как сравнивать символы...

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

Подправить код задачи про замену символов групп
В заданной строке заменить группу символов 'abc' на 'abcd' Почему не правильно? var s:string; i:byte; begin writeln('Введите...

Задача про Лабиринты, необходим код на java
Задача 35. Лабиринт задается матрицей смежности N*N, где C(i,j)=1, если узел i связан узлом j посредством дороги. Часть узлов...

Каждое слово строки состоящее более, чем из 8 символов, сократить до первых 8 символов
Нуждаюсь в помощи. Нужно написать программу на C++(в принципе, и на Си можно) которая делает следующее: В каждой строке каждое слово,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru