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

короткие коды с ******** - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
28.01.2014, 14:31     короткие коды с ******** #1
всем привет я решил создать общую тему по сокращению кодов (если у кого есть по короче по желанию напишите на форум нужно писать так № (номер задачи с ********)
код размер
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
28.01.2014, 14:36
  #2
 Комментарий модератора 
костя666674555, выкладывайте главное задания (текст заданий перепечатывайте на форум), а не как в прошлый раз.
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
28.01.2014, 15:29  [ТС]     короткие коды с ******** #3
итак ЗАДАЧА №1
Кликните здесь для просмотра всего текста
A+B
(Время: 2 сек. Память: 16 Мб Сложность: 2%)

Требуется сложить два целых числа А и В.
Входные данные

В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.
Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.
Пример
№ INPUT.TXT OUTPUT.TXT
1 2 3 5

код :
C++
1
2
3
4
5
6
7
#include <fstream>
main(){
std::fstream i("input.txt"),o("output.txt", 2);
int a,b;
i>>a>>b;
o<<a+b;
}
Размер кода: 92
но есть приём по хитрее
C++
1
2
3
4
5
#include <ios>
main()
{
  system("for /f \"tokens=1,2\" %a in (input.txt) do set /a %a+%b >output.txt");
}
Размер кода: 89
РАЗБОР : задача очень проста вводим а и б и выводим а+б

Добавлено через 6 минут
ЗАДАЧА №2
Кликните здесь для просмотра всего текста
Сумма
(Время: 1 сек. Память: 16 Мб Сложность: 19%)

Требуется посчитать сумму целых чисел от 1 до N.
Входные данные

В единственной строке входного файла INPUT.TXT записано единственное целое число N, не превышающее по абсолютной величине 104.
Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел от 1 до N.
Пример
№ INPUT.TXT OUTPUT.TXT
1 5 15

код
C++
1
2
3
4
5
6
#include <fstream>
main(int n){
std::fstream i("input.txt"), o("output.txt", 2);
i>>n;
o<<(n>0?n:2-n)*++n/2;
}
Размер кода: 100
РАЗБОР
посидев два дня над решением данной задачи вы придёте к формуле дальнейший смысл сокрашения упростить формулу (n -любое! даже отрицательное)

Добавлено через 9 минут
ЗАДАЧА №3
Кликните здесь для просмотра всего текста
Пятью пять - двадцать пять!
(Время: 1 сек. Память: 16 Мб Сложность: 8%)

Вася и Петя учатся в школе в одном классе. Недавно Петя поведал Васе о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь Вася может с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5. Способ заключается в следующем: для возведения в квадрат числа, оканчивающегося на 5 достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа. Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625. Напишите программу, возводящую число, оканчивающееся на 5, в квадрат для того, чтобы Вася смог проверить свои навыки.
Входные данные

В единственной строке входного файла INPUT.TXT записано одно натуральное число А, оканчивающееся на цифру 5, не превышающее 4*105.
Выходные данные

В выходной файл OUTPUT.TXT выведите одно натуральное число - A2 без лидирующих нулей.
Примеры
№ INPUT.TXT OUTPUT.TXT
1 5 25
2 75 5625
3 4255 18105025

код:
C++
1
2
3
4
5
6
#include <fstream>
main(__int64 a){
std::fstream i("input.txt"),o("output.txt", 2);
i>>a;
o<<a*a;
}
Размер кода: 90
РАЗБОР : условие читать бесмысленно вас потянет не в ту сторону решения задачи
можно просто вывести a*a

Добавлено через 3 минуты
ЗАДАЧА №4
Кликните здесь для просмотра всего текста
Игра
(Время: 1 сек. Память: 16 Мб Сложность: 4%)

В свободное время одноклассники Вася и Петя любят играть в различные логические игры: морской бой, крестики-нолики, шахматы, шашки и многое другое. Ребята уже испробовали и поиграли во всевозможные классические игры подобного рода, включая компьютерные. Однажды им захотелось сыграть во что-нибудь новое, но ничего подходящего найти не удалось. Тогда Петя придумал следующую игру «Угадайка»: Играют двое участников. Первый загадывает любое трехзначное число, такое что первая и последняя цифры отличаются друг от друга более чем на единицу. Далее загадавший число игрок переворачивает загаданное число, меняя первую и последнюю цифры местами, таким образом получая еще одно число. Затем из максимального из полученных двух чисел вычитается минимальное. Задача второго игрока – угадать по первой цифре полученного в результате вычитания числа само это число. Например, если Вася загадал число 487, то перестановкой первой и последней цифры он получит число 784. После чего ему придется вычесть из 784 число 487, в результате чего получится число 297, которое и должен отгадать Петя по указанной первой цифре «2», взятой из этого числа. Петя успевает лучше Васи по математике, поэтому практически всегда выигрывает в играх такого типа. Но в данном случае Петя схитрил и специально придумал такую игру, в которой он не проиграет Васе в любом случае. Дело в том, что придуманная Петей игра имеет выигрышную стратегию, которая заключается в следующем: искомое число всегда является трехзначным и вторая его цифра всегда равна девяти, а для получения значения последней достаточно отнять от девяти первую, т.е. в рассмотренном выше случае последняя цифра равна 9-2=7. Помогите Пете еще упростить процесс отгадывания числа по заданной его первой цифре, написав соответствующую программу.
Входные данные

В единственной строке входного файла INPUT.TXT задана единственная цифра К, соответствующая первой цифре полученного Васей в результате вычитания наименьшего загаданного Васей значения из наибольшего.
Выходные данные

В выходной файл OUTPUT.TXT нужно вывести значение полученной Васей разности.
Примеры
№ INPUT.TXT OUTPUT.TXT
1 5 594
2 2 297
3 7 792

код:
C++
1
2
3
4
5
6
7
#include <fstream>
main(int a)
{
std::fstream I("input.txt"), O("output.txt", 2);
I>>a;
O<< 99*++a;
}
Размер кода: 89
но жестокий **** принимает и такое
C++
1
2
3
4
5
#include <ios>
main()
{
  system("for /f %n in (input.txt) do set /a 99*%n+99 >output.txt");
}
Размер кода: 78

Добавлено через 33 минуты
ЗАДАЧА №5
Кликните здесь для просмотра всего текста
Статистика
(Время: 1 сек. Память: 16 Мб Сложность: 25%)

Вася не любит английский язык, но каждый раз старается получить хотя бы четверку за четверть, чтобы оставаться ударником. В текущей четверти Вася заметил следующую закономерность: по нечетным дням месяца он получал тройки, а по четным – четверки. Так же он помнит, в какие дни он получал эти оценки. Поэтому он выписал на бумажке все эти дни для того, чтобы оценить, сколько у него троек и сколько четверок. Помогите Васе это сделать, расположив четные и нечетные числа в разных строчках. Вася может рассчитывать на оценку 4, если четверок не меньше, чем троек.
Входные данные

В первой строке входного файла INPUT.TXT записано единственное число N – количество элементов целочисленного массива (1<=N<=100). Вторая строка содержит N чисел, представляющих заданный массив. Каждый элемент массива – натуральное число от 1 до 31. Все элементы массива разделены пробелом.
Выходные данные

В первую строку выходного файла OUTPUT.TXT нужно вывести числа, которые соответствуют дням месяцев, в которые Вася получил тройки, а во второй строке соответственно расположить числа месяца, в которые Вася получил четверки. В третьей строке нужно вывести «YES», если Вася может рассчитывать на четверку и «NO» в противном случае. В каждой строчке числа следует выводить в том же порядке, в котором они идут во входных данных. При выводе, числа отделяются пробелом.
Примеры
№ INPUT.TXT OUTPUT.TXT
1 5
4 16 19 31 2 19 31
4 16 2
YES
2 8
29 4 7 12 15 17 24 1 29 7 15 17 1
4 12 24
NO

код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <fstream>
#define R for(i=0;i<n;i++){
main(){ std::fstream q("input.txt"),o("output.txt", 2);
    int a[1013],n,b=0,s=0,i,j;
    q>>n;
    R
        q>>a[i];
    }
    R
        if(a[i]%2==1){
            o<<a[i]<<" ";
            s++;
        }
    }
    o<<"\n";
    R
        if(a[i]%2==0){
            o<<a[i]<<" ";
            b++;
        }
    }
    o<<"\n"<<(b<s ? "NO" : "YES");
    }
Размер кода: 268 (как короче?)
РАЗБОР здача очень легка в принципе это пказывает мой код
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.01.2014, 15:32     короткие коды с ******** #4
Что это за лажа?
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
28.01.2014, 15:36  [ТС]     короткие коды с ******** #5
Цитата Сообщение от Vourhey Посмотреть сообщение
Что это за лажа?
что? помойму всё понятно
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
28.01.2014, 15:37     короткие коды с ******** #6
Цитата Сообщение от Vourhey Посмотреть сообщение
Что это за лажа?
чувак занялся СП. к успеху идет.
костя666674555
-94 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 78
28.01.2014, 16:02  [ТС]     короткие коды с ******** #7
что такое сп?

Добавлено через 35 секунд
помогите код ЗАДАЧИ №5 сократить

Добавлено через 20 минут
ЗАДАЧА №6
Кликните здесь для просмотра всего текста
Шахматы
(Время: 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 (как короче?)
RussDragon
 Аватар для RussDragon
12 / 12 / 1
Регистрация: 08.04.2012
Сообщений: 81
28.01.2014, 16:08     короткие коды с ******** #8
Хитро однако.
Так, невзначай, вот вам 5 задачек готовых, а теперь скажите как мне сократить. А нормально попросить не судьба?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 17:35     короткие коды с ********
Еще ссылки по теме:

Очень короткие решения задач на acmp.ru C++
Коды Assembler в C/C++ C++
C++ Строки: найти все самые короткие слова сообщения

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

Или воспользуйтесь поиском по форуму:
magirus
28.01.2014, 17:35     короткие коды с ********
  #9
 Комментарий администратора 
Вам сколько раз нужно повторить чтобы вы уяснили: одна тема - одна задача. Свалок задач в темах не будет.
Yandex
Объявления
28.01.2014, 17:35     короткие коды с ********
Закрытая тема Создать тему
Опции темы

Текущее время: 03:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru