Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
#1

Сократить код на два символа - C++

06.01.2014, 20:53. Просмотров 806. Ответов 22
Метки нет (Все метки)

сокртить код
C++
1
2
3
4
5
6
7
#include <fstream>
main(int n)
{
std::fstream I("input.txt"), O("output.txt", 2);
I>>n;
O<<(n <=0 ? (n - n*n)  / 2 + 1 : (n*n+n)/2);
}
Размер кода: 111
а лутший 99 символов (разумеется с++) как?
[Задачу размещайте здесь] Задача

Добавлено через 4 минуты
итак начнём
строка
C++
1
O<<(n <=0 ? (n - n*n)  / 2 + 1 : (n*n+n)/2);
сократим на 1 символ
C++
1
O<<(n >0 ? (n*n+n)/2 : (n - n*n)/ 2 + 1);
итак код
C++
1
2
3
4
5
6
7
#include <fstream>
main(int n)
{
std::fstream I("input.txt"), O("output.txt", 2);
I>>n;
O<<(n >0 ? (n*n+n)/2 : (n - n*n)/ 2 + 1);
}
Размер кода: 110
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 20:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сократить код на два символа (C++):

Сократить код, переделав if - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #pragma hdrstop #pragma argsused using namespace std; int main(int argc, char* argv) ...

Можно ли еще сократить код? - C++
Есть программа, которая должна считать данные из файла input.txt и записать ответ в фаил output.txt. Программа должна сложить 2 числа не...

сократить код, добавить функцию - C++
Есть код, замены местами столбцов с min и max элементами, нужно добавить больше функций, и миксимально его сократить... что можно...

Крестики нолики(сократить код) - C++
а как в крестиках ноликах можно заменить проверку двух подряд крестиков? //////////////////////HORIZONTAL/////////////// if(a==a &amp;&amp;...

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

Сократить код до 101 - 120 символов - C++
есть задача ! есть код #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; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
06.01.2014, 20:54 #2
Требуется посчитать сумму целых чисел от 1 до N.
Это же арифметическая прогрессия. Сумма рассчитывается в одно действие
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
06.01.2014, 20:56  [ТС] #3
Цитата Сообщение от xoror Посмотреть сообщение
Это же арифметическая прогрессия. Сумма рассчитывается в одно действие
n любое даже отрицательное
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
06.01.2014, 21:00 #4
Цитата Сообщение от костя666674555 Посмотреть сообщение
n любое даже отрицательное
Тогда не знаю)
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
06.01.2014, 21:17  [ТС] #5
(n+1)(n-2)/-2
(n*n+n)/2=(n*(n+1))/2
если n=n-1
то (n+1)(n-2)/-2=n*(n-1)/-2
и n*(n+1)/2= n*(n-1)/2

Добавлено через 3 минуты
итог
C++
1
2
3
4
5
6
7
8
#include <fstream>
main(int n)
{
std::fstream I("input.txt"), O("output.txt", 2);
I>>n;
int k=n*(n-1)/2;
O<<(n-- >0 ? k : -k);
}
Wrong answer (((((((((((((((((
Ev_Hyper
07.01.2014, 01:33
  #6

Не по теме:


файлы покороче назови

volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23385 / 15376 / 4526
Регистрация: 22.10.2011
Сообщений: 27,333
Записей в блоге: 4
07.01.2014, 20:01 #7
костя666674555,
C++
1
O<<(n+(n>0?n*n:2-n*n))/2;
будет 104 символа...

Добавлено через 16 часов 49 минут
А вот так:
C++
1
O<<(n>0?n:2-n)*++n/2;
вообще будет 100 символов. Как убрать еще один - не понятно...
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
07.01.2014, 22:15 #8
Учитывая, что компилятор понимает такое безобразие как
Цитата Сообщение от костя666674555 Посмотреть сообщение
main(int n)
возможно он понимает и *.h заголовки. Тогда можно попробовать заменить #include <fstream> на #include <fstream.h> и убрать перед std::fstream std::.
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
07.01.2014, 22:53 #9
Цитата Сообщение от UI Посмотреть сообщение
Как убрать еще один - не понятно...
Можно двойку убрать здесь
Цитата Сообщение от костя666674555 Посмотреть сообщение
O("output.txt", 2);
Ну и получается как раз 99 символов

C++
1
2
3
4
5
6
7
8
#include <fstream>
 
main(int n)
{
    std::fstream I("input.txt"), O("output.txt");
    I >> n;
    O<<(n>0?n:2-n)*++n/2;
}
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23385 / 15376 / 4526
Регистрация: 22.10.2011
Сообщений: 27,333
Записей в блоге: 4
08.01.2014, 00:08 #10
Цитата Сообщение от xoror Посмотреть сообщение
Можно двойку убрать здесь
Нельзя, это не будет выдавать правильный ответ, и система не зачтет данное решение...
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
08.01.2014, 16:20  [ТС] #11
Цитата Сообщение от xoror Посмотреть сообщение
Можно двойку убрать здесь


Ну и получается как раз 99 символов

C++
1
2
3
4
5
6
7
8
#include <fstream>
 
main(int n)
{
    std::fstream I("input.txt"), O("output.txt");
    I >> n;
    O<<(n>0?n:2-n)*++n/2;
}
не 99 а 98 :-)

Добавлено через 7 минут
кто ещё может потдерживать
C++
1
fstream I("input.txt"), O("output.txt", 2);
кроме
C++
1
#include <fstream>
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
08.01.2014, 16:52 #12
Цитата Сообщение от костя666674555 Посмотреть сообщение
int k=n*(n-1)/2;
Цитата Сообщение от костя666674555 Посмотреть сообщение
Wrong answer (((((((((((((((((
+1.
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
08.01.2014, 16:57  [ТС] #13
C++
1
int k=n*(n-1)/2;
это формула для n<0
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
08.01.2014, 17:42 #14
C++
1
2
#include<fstream>
main(int n){std::fstream I("i"),O("o",16);I>>n;int d=n>0?1:-1;O<<n+(n-1)*d*n/2;}
Ровно 99 символов.
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
08.01.2014, 17:51 #15
kazak, пробелы в подсчете не учитываются
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 17:51
Привет! Вот еще темы с ответами:

Сократить код. Задача про сравнение символов - C++
набросал решение вышесказаной задачи вот код #include &lt;fstream&gt; main(int k){ std::fstream i(&quot;input.txt&quot;),o(&quot;output.txt&quot;, 2); ...

Скажите, пожалуйста, возможно ли код сократить еще? - C++
Вот код моей программы. #include &lt;fstream&gt; int a,b,c; main(){ std::fstream i(&quot;input.txt&quot;),o(&quot;output.txt&quot;, 2); i&gt;&gt;a&gt;&gt;b&gt;&gt;c; ...

Код символа в число символа - C++
Подскажите плиз кто знает, каким способом можно присвоить переменной short bit = 0; значение символа под кодом (код в HEX) char symbol =...

Сократить код ( Вырубка деревьев (Время: 1 сек. Память: 16 Мб Сложность: 46%) - C++
всем привет решил написать код от 24-ой задачи с ******** вот код #include &lt;fstream&gt; int main(){ std::fstream...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.01.2014, 17:51
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru