- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
// p2.cpp : Defines the entry point for the console application.
// Язык Visual C++ 7.0
// Консольное приложение
// 13.07.2016
#include "stdafx.h"
#include <conio.h>
int aa (int, int, int);
void ab (int);
int _tmain(int argc, _TCHAR* argv[])
{
int a, b, c, d, e;
int f;
for (a = 0; a < 4; a++)
for (b = 0; b < 4; b++)
for (c = 0; c < 4; c++)
for (d = 0; d < 4; d++)
for (e = 0; e < 4; e++)
{
f = aa (1, a, 2);
f = aa (f, b, 3);
f = aa (f, c, 4);
f = aa (f, d, 5);
f = aa (f, e, 6);
if (f == 35)
{
printf ("((((1 "); ab (a);
printf ("2) "); ab (b);
printf ("3) "); ab (c);
printf ("4) "); ab (d);
printf ("5) "); ab (e);
printf ("6 = 35.\n");
}
}
getch ();
return 0;
}
int aa (int a, int b, int c)
{
switch (b)
{
case 0: return a + c;
case 1: return a - c;
case 2: return a * c;
case 3: return a / c;
}
return 0;
}
void ab (int a)
{
switch (a)
{
case 0: printf ("+ "); break;
case 1: printf ("- "); break;
case 2: printf ("* "); break;
case 3: printf ("/ "); break;
}
}
Задача: В написанном выражении ((((1 ? 2) ? 3) ? 4) ? 5) ? 6 вместо каждого знака ? вставить знак одного из четырёх арифметических действий: +, -, *, / так, чтобы результат вычислений равнялся 35.
wvxvw 13.07.2016 15:01 # +2
А у автора богатое воображение.
Dummy00001 13.07.2016 15:56 # +7
Xom94ok 13.07.2016 20:11 # +1
bormand 13.07.2016 20:11 # +2
> методы
З.Ы. А ну раз ещё и методы - то майкрософт и его друзья.
Antervis 13.07.2016 20:33 # 0
bormand 13.07.2016 20:34 # 0
С джавы, походу.
3_14dar 13.07.2016 23:13 # −1
dxd 13.07.2016 23:25 # 0
3oJloTou_xyu 14.07.2016 02:36 # 0
laMer007 14.07.2016 08:35 # 0
Dummy00001 14.07.2016 11:14 # +3
bormand 13.07.2016 20:08 # +1
roman-kashitsyn 13.07.2016 15:04 # +1
4e1 13.07.2016 15:09 # +1
я сделялъ
Dummy00001 13.07.2016 15:10 # +2
bakagaijin 13.07.2016 23:00 # 0
Soul_re@ver 13.07.2016 15:36 # +4
Antervis 13.07.2016 15:44 # +1
(вспомнился анекдот "и шапочку")
FrontlineReporter 13.07.2016 16:12 # 0
FrontlineReporter 13.07.2016 16:11 # 0
roman-kashitsyn 13.07.2016 18:28 # +6
я зделяль
wvxvw 13.07.2016 15:40 # +4
Dummy00001 13.07.2016 16:44 # 0
inkanus-gray 13.07.2016 17:27 # +2
roman-kashitsyn 13.07.2016 18:41 # +12
В сишечке же. Вы что, не знали, что сишечка испокон веков поддерживала логическое программирование?
CHayT 13.07.2016 18:08 # +3
roman-kashitsyn 13.07.2016 16:46 # +2
wvxvw 13.07.2016 17:32 # +2
Даже на Питоне, и то лучше выглядит.
roman-kashitsyn 13.07.2016 18:01 # +3
gost 13.07.2016 16:56 # +1
> printf
Пожалуй, это самый сишный говнокод, который я видел в разделе C++. Где, ну вот где, во имя всех святых хуёв, здесь C++, FrontlineReporter?!
inkanus-gray 13.07.2016 17:26 # 0
laMer007 14.07.2016 08:45 # 0
gost 14.07.2016 13:05 # +1
SUDDENLY_interrupt 13.07.2016 17:38 # 0
wvxvw 13.07.2016 20:00 # +2
Antervis 13.07.2016 20:04 # 0
CHayT 14.07.2016 20:40 # +1
Хотя это чистая интуиция, пруфов не будет.
Xom94ok 13.07.2016 20:06 # +5
j123123 13.07.2016 20:35 # +1
bormand 13.07.2016 20:39 # 0
j123123 13.07.2016 20:54 # +1
bormand 13.07.2016 21:01 # 0
Фи! Не барское это дело. Пускай сольвер сам программирует на брейнфаке (подбирая код под тесткейсы).
bormand 13.07.2016 21:05 # +4
j123123 13.07.2016 21:16 # 0
bormand 13.07.2016 21:20 # 0
dxd 13.07.2016 21:35 # 0
26 символов, как заказано.
bormand 13.07.2016 21:37 # 0
dxd 13.07.2016 22:05 # 0
bormand 13.07.2016 22:07 # 0
З.Ы. И я его таки нашёл: ????????????????? но ideone на нём таймаутится. Есть где-нибудь на примете ещё интерпретаторы?
bormand 13.07.2016 22:18 # +2
З.Ы. Я там количество вопросиков от балды вбивал, не подумайте, что я специально забрил большинство наивных решений (которые почему-то получаются по 27 символов, как назло).
dxd 13.07.2016 22:27 # 0
bormand 13.07.2016 22:30 # +6
Ткни меня носом в строчку в стандарте брейнфака, где написано, что это UB.
dxd 13.07.2016 22:44 # +1
j123123 13.07.2016 22:25 # +4
Эта хрень с ML синтаксисом (типа всяких там хачкелей). http://why3.lri.fr/stdlib-0.87.1/ можно довольно легко разобраться синтаксисом к этой хрени, если ковырялись с ML-ями (хачкель, F#, Standard ML, OCaml и проч)
Оно эту свою хрень переводит в язык для всяких разных SMT солверов. Еще умеет в Coq транслировать это говно (в Agda вроде нет).
j123123 21.07.2016 02:16 # +1
Z3 выдает ответ
http://rise4fun.com/Z3/luIN
ite это if then else, остальное думаю и так понятно
myaut 14.07.2016 00:13 # 0
3_14dar 14.07.2016 00:34 # +1
roman-kashitsyn 14.07.2016 08:23 # +3
meinf 14.07.2016 13:40 # +2
мне чет это сразу в голову пришло, но не могу придумать как заанролить весь набор комбинаций =\
Antervis 14.07.2016 13:49 # +3
bormand 14.07.2016 18:14 # +2
Soul_re@ver 14.07.2016 18:15 # +2
Antervis 14.07.2016 19:12 # +1
Функция скомпилится только если будет существовать какой-то вариант реализации, выдающий 35, а остальные варианты попросту откинет
meinf 14.07.2016 19:40 # +3
интересная штука, но я пока по быстрому сделал в лоб через рекурсию и специализацию
https://ideone.com/AVSQa6
раскрывается в 3 вызова Print и ужасное количество кода (сборку строки выхлопа бы в комплай-тайм вынести, на макросах как нибудь, но хз)
kurwa 15.07.2016 21:13 # +4
http://rextester.com/TPMIJ98478 - даже печать на этапе конпиляции.
bormand 15.07.2016 21:19 # 0
kurwa 15.07.2016 20:08 # +4