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-битных чисел, Ява-синтакс)