Просмотр задания
После выполнения алгоритма было напечатано 3
числа. Первые два напечатанных числа – это числа 13 и 65. Какое наибольшее
число может быть напечатано третьим?
var x, y, z: integer;
r, a, b: integer;
begin
readln(x, y);
if y > x then
begin
z:= x; x:= y; y:= z;
end;
a:= x; b:= y;
while b > o do
begin
r:= a mod b;
a:= b;
b:= r;
end;
writeln(a); writeln(x); write(y);
end.
Гость
19 февраля 2016
Ответы (2)
Информатик БУ # 19 февраля 2016 в 23:17 0
Странная задачка. Третьим печатается Y, в цикле меняются переменные a, b и r, они никак не влияют ни на x, ни на y, для решения его можно убрать:

Код PASCAL:
  1.  
  2. var x, y, z: integer;
  3. r, a, b: integer;
  4. begin
  5. readln(x, y);
  6. if y > x then
  7. begin
  8. z:= x; x:= y; y:= z;
  9. end;
  10. writeln(a); writeln(x); write(y);
  11. end.
  12.  
После выполнения a=13 (что не важно), x=65, y нужно найти.
Условие
if y > x then
begin
z:= x; x:= y; y:= z;
end;
меняет местами значения x и y, если y>x.

Если предположить, что x>=y, то x так и остался равен 65, но в этом случае максимальное значение Y - 65.
Если предположить, что x<y, то переменные поменяются местами, и так как x после выполнения программы стал равен 65, то y=65.

Ответ: 65
Любовь Ясеновская # 27 февраля 2016 в 19:52 0
Эта программа классический Алгоритм Евклида нахождения НОД трех чисел. И ответ здесь 52. Если нужно решение напишу)))
Перевести число из в Результат: 510 = 1012