vak: (Default)
[personal profile] vak
Сложить два целых числа, вернуть целое. Породить исключение в случае арифметического переполнения.
int add(int a, int b);
Удивительно, сколько народу обламывается на этой задачке.

Date: 2020-08-02 18:37 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Есть машинки (типа UNISYS Clearpath), у которых только тип char маленький (8 бит), а все остальные целочисленные (в т.ч. short и long) одинаково большие (96 бит).
Т.е. там более длинных целочисленных типов просто нет.

Date: 2020-08-02 19:19 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Если нет целочисленных, можно играть с вещественными.

Но вопрос не в этом, а в том, что задача про то, может ли кандидат в гамаке и водолазном костюме.

Date: 2020-08-02 20:33 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
На упомянутой машине в long double может влезть.

Ну и вот, смотришь, как он выкручивается, когда узнаёт про UB. Чем больше годных вариантов и чем они годнее, тем лучше.