Re: две школьные задачки по информатике

Anatoli Klassen <[email protected]> Fri, 23 Apr 2004 20:03:14 +0200
Newsgroups gmane.org.it-ru.germany.general
Message-ID <[email protected]>
Sergey V. Spiridonov wrote:

> Проще надо быть. Решение в три сточки. Ничего заумного. Чистая 
> арифметика, в каком классе модуль изучали? В шестом? Значит за 6 класс.
> 3 строчки.
> 
> int a = -5, b = 5, temp;
> 
> temp = ((a - b) - abs(a - b)) / 2;
> a = a - temp;
> b = b + temp;
> 
> Стареем?

Кстати, переполнение может быть.

Я хоть, как известная мартышка, два раза об одном и том же думать не 
умею, но напрягся и вот :)

c = a-b;
d = c >>> 31;    // сдвиг вправо, записывая 0 в старший разряд
e = 1-d;

int[] f = new int[] { a, b };

a = f[d];
b = f[e];

(для 32-битных чисел, Ява-синтакс)