Вход


Главная страница >> Учебный процесс >> Задачник >> Олимпиадные задачи (с решениями) >> Арифметика >> Номер 7

[Назад]    [Содержание ]    [Вперед]

  


Номер 7


  Условие: Номер 7


Задача 7. Дан массив X(100) и Y(100). Записать алгоритм, меняющий последовательно местами значения элементов X(k) и Y(k) для этих таблиц, для k=1,2,...,100, не используя промежуточных переменных.

  Решение задачи: Номер 7


Решение задачи 7. Будем менять местами содержимое переменных A и B. Существует несколько способов сделать это. 1. Оператор Значение в A Значение в B A:=A+B A+B B B:=A-B A+B A A:=A-B B A 2. Можно использовать логическую операцию XOR (исключающее или). Таблица истинности для XOR следующая: 1 XOR 1 = 0 1 XOR 0 = 1 0 XOR 0 = 0 0 XOR 1 = 1 Операция XOR над двумя переменными в машине реализуется как побитовая операция над двоичным представлением чисел. Поэтому, в частности, A XOR A = 0, A XOR B = B XOR A, A XOR 0 = A. Оператор Значение в A Значение в B A:=A XOR B A XOR B B B:=A XOR B A XOR B (A XOR ) XOR B=A XOR(B XOR B)=A XOR 0 = A A:=A XOR B (A XOR B) XOR A=B XOR (A XOR A)=B A

Назад



[Назад]    [Содержание ]    [Вперед]

  


  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017