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

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

02.01.2014, 21:07. Показов 8430. Ответов 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
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
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
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
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
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru