
Tishka17
09.08.2018
19:41:34

Мой любимый
09.08.2018
19:43:15

Tishka17
09.08.2018
19:44:22

Google

ivan
09.08.2018
19:45:42

Tishka17
09.08.2018
19:46:19
[null, null] + [1]
",1"
null + "1"
"null1"
null + 1
1

ivan
09.08.2018
19:47:33

/dev
09.08.2018
19:47:59

Tishka17
09.08.2018
19:48:04
для меня это ересь какая-то

Мой любимый
09.08.2018
19:48:06
лол

Tishka17
09.08.2018
19:48:14
просто потыкал, Ужаснулся

ivan
09.08.2018
19:48:28
Такой вот он, js)

Мой любимый
09.08.2018
19:48:46
0.3 + 0.3 + 0.3
Out[472]: 0.8999999999999999
:]

/dev
09.08.2018
19:49:09

Google

Мой любимый
09.08.2018
19:49:28
я не могу читать дальше, когда вижу много букв ее

/dev
09.08.2018
19:49:30
welcome to числодробилки

Stas
09.08.2018
19:49:41

ivan
09.08.2018
19:49:45
null + "1"
"null1"
null + 1
1
Ну тут ясно более-менее
Там по второму оператору происходит преобразования
В первом случае nullв строку, что будет "null"
Во втором случае null в число, что будет 0
Потому что null это false, false это 0

Dk
09.08.2018
19:50:03

Tishka17
09.08.2018
19:50:18

ivan
09.08.2018
19:50:49
А вот хрен его знает :))

Tishka17
09.08.2018
19:51:39
[null, "test"] + "1"
",test1"
null + "test"
"nulltest"
[null] + 1
"1"

Stas
09.08.2018
19:51:53

ivan
09.08.2018
19:52:13
Вроде как

Tishka17
09.08.2018
19:52:34

Stas
09.08.2018
19:52:51

Tishka17
09.08.2018
19:53:01
В смысле?
[null, "test"] + "1"
",test1"
null + "test"
"nulltest"

Мой любимый
09.08.2018
19:53:10
Да
Это и есть питон

Tishka17
09.08.2018
19:53:23
почему в первом случае не "null,test1"

Google

Stas
09.08.2018
19:53:40

ivan
09.08.2018
19:55:08
>Язык программирования должен быть предсказуемым

Stas
09.08.2018
19:56:03

Dk
09.08.2018
19:56:14
Никто не оценил ?

ivan
09.08.2018
19:56:39

Stas
09.08.2018
19:56:58

Tishka17
09.08.2018
19:57:28
[null, "test"].join(",")
",test"
null + "," + "test"
"null,test"

Stas
09.08.2018
19:58:11
а при конкатенации - там все по-другому

ivan
09.08.2018
19:58:54
Ну да, там null в строку преобразовывается по идее
Вот вроде и понятно
Но блеееен, кто придумал этот бред

Tishka17
09.08.2018
19:59:15
я могу придумать объяснение. но не понимаю, почему это не одинаково
зачем так было делать?

ivan
09.08.2018
20:00:25
зачем так было делать?
Фиг знает, мб это связано с историческим развитием js
Все-таки над ним кто попало работал
Не было каких-то стандартов
И тд

Stas
09.08.2018
20:00:39
зачем так было делать?
Это сложно, потому что:
1) У каждого типа есть перегруженные операторы
2) Разные приоритеты выполнения этих операторов
Вот и выпадает, что "+" - это не "+" от числа, а "+" от строк (т.е. конкатенация)

Denis
09.08.2018
20:01:09
Просто это придумали за неделю, а потом было слишком поздно исправлять

Google

Tishka17
09.08.2018
20:01:25
в питоне тоже ес ьперегруженные. но контактенации и джойн - одна фигня

Stas
09.08.2018
20:02:01
мне из-за этого наоборот js нравится
чувствуешь, будто тебе снова подарили Lego

Admin
ERROR: S client not available

ivan
09.08.2018
20:03:47
Лучше бы он оправдывал своё название и был похож на java

Tishka17
09.08.2018
20:04:10

Stas
09.08.2018
20:04:55
у меня не возникает проблем с этим, я пишу 4 года.
И когда происходят непонятки, я изучаю это и все сразу встает на свои места.
P.S. Как с примером про 0.3+0.3+0.3
Все же понимают, из-за чего это.

ivan
09.08.2018
20:07:15

Stas
09.08.2018
20:07:47

ivan
09.08.2018
20:08:19
Фиг знает
Пишу на питон, но на другие языки не пофиг

Stas
09.08.2018
20:08:39

Maxim robox
09.08.2018
20:26:14
https://code.sololearn.com/cXFYoiEbYmqW/?ref=app
А то я накидал какую-то хрень

Влад
09.08.2018
21:15:43
stones = list(map(int, input().split()))
stones.sort(reverse=True)
diff = 0
for s in stones:
if diff > 0:
diff -= s
else:
diff += s
print(diff)

Denis
09.08.2018
21:27:28
Неужели это придумывается проще, чем перебор?

Google

Ser
09.08.2018
21:35:56

Stas
09.08.2018
21:39:52

Алексей
09.08.2018
21:42:19

Tishka17
09.08.2018
21:43:25

Ser
09.08.2018
21:44:10

Tishka17
09.08.2018
21:44:27

Ser
09.08.2018
21:44:56

Tishka17
09.08.2018
21:47:29
Камни 10, 8, 6, 6, 6 можно поделить на 10,8 и 6,6,6 ч разницей ноль. Твой алгоритм даёт 4
Аналогично 10,4,4,3,3,3,3,3,3

Denis
09.08.2018
21:49:26
Упражнение: придумать как можно более слабые условия на входные данные, чтобы этот алгоритм давал правильный ответ

Danil
09.08.2018
21:53:55
С камнями все просто
В самом начале в кучу кладем самый большой камень по весу
А в другую самый маленький
Потом самый большой из оставшихся кладем в маленькую кучу

Denis
09.08.2018
21:54:42
Зачем?