Я наткнулся на интригующий C-код, который печатает A + B, но мне трудно понять его.
Формат ввода:
A B
где A, B - целые числа от 0 до 10 разделенные одним пространством.
Код:
main( n )
{
gets( &n );
printf("%d", n % 85 - 43);
}
Это предназначено для короткого кодирования, пожалуйста, не обращайте внимания на предупреждения.
Насколько я понимаю до сих пор:
gets( &n ) сохраняет значения ASCII A, пробела и B в нижних трех байтах n. Например, A = 3 и B = 8 дают n = 0x00382033. Приведенные условия предотвращают переполнение n. Но я не понимаю, как n % 85 - 43 дает A + B
Как вы можете найти эти цифры?