Заполните пропуски в таблице единицами изме- рения информации: 1 Эбайт 1024 Пбайт 1024 байт 1... 210 байт 280 байт 1 Мбайт 1 Мбайт 1 Tбайт 1024 Кбайт ... 1024 ... 240 байт байт бит 1 Гбайт ІІ 1024 Мбайт 1024 Tбайт 1... 250 байт 270 байт 1 Збайт 1024 Эбайт
Тогда a⊕b→a; a⊕b→b; a⊕b→a - это был обмен значениями a ↔ b
Теперь по этой же схеме обменяем местами b и с:
b⊕c→b; b⊕c→с; b⊕c→b.
Результат: b→a; c→b; a→c
Программа для иллюстрации:
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
var a:=50;
var b:=-20;
var c:=0;
Println('Исходные значения: a=',a,'b=',b,'c=',c);
a:=a xor b; b:=a xor b; a:=a xor b;
b:=b xor c; c:=b xor c; b:=b xor c;
Println('Результат обмена: a=',a,'b=',b,'c=',c)
end.
Результат:
Исходные значения: a= 50 b= -20 c= 0
Результат обмена: a= -20 b= 0 c= 50
public static void main(String args[]){
java.util.Scanner in = new java.util.Scanner(System.in); long eArray[] = new long[1];
while((eArray[eArray.length-1] = in.nextLong())!=-1){
long nArray[] = new long[eArray.length+1];
for(int nCell = 0; nCell<eArray.length; nCell++)nArray[nCell]=eArray[nCell];
eArray = nArray;
} eArrayCell:
for(int cCell = 0; cCell<eArray.length-1; cCell++){
if(eArray[cCell]%2==0)continue;
else for(int eCell = cCell+1; eCell<eArray.length-1; eCell++)
if(eArray[eCell]%2==0){
eArray[eArray.length-1]=eArray[cCell];
eArray[cCell]=eArray[eCell];
eArray[eCell]=eArray[eArray.length-1];
continue eArrayCell;
}
break;
}
for(int cCell = 0; cCell<eArray.length-1; cCell++)System.out.print(eArray[cCell]+" ");
}
}