Предмет: Информатика, автор: Serafim1706

Введите с клавиатуры два целых нечетных числа (первое больше второго). Выведите на экран последовательность нечетных чисел, расположенных между этими числами (паскаль)

Ответы

Автор ответа: vladmor
0
var a,b:integer;
begin
  write('Введите нечетные a,b (a>b) ');
  readln(a,b);
  a:=a-2;
  repeat
    if a mod 2 <> 0 then writeln(a);
      a:=a-2;
  until a = b;    
end.

Тест №1
Введите нечетные a,b (a>b) -89 -99
-91
-93
-95
-97

Тест №2
Введите нечетные a,b (a>b) 99 89
97
95
93
91



Автор ответа: Serafim1706
0
спасибо уже разобрался, но можно попроще program dfdfv; var a,b,i: integer; begin writeln('введите с клавиатуры два целых нечетных числа (первое больше второго)'); readln (a,b); for i:=a to b do if i mod 2=1 then writeln (i,' '); end.
Автор ответа: vladmor
0
Только не for i:=a то b а наверное for i:=a downto b, и в вашем решении учитываются числа a и b, а надо найти числа между ними по условию задачи. Значит a и b не включаются в ответ
Автор ответа: Serafim1706
0
точно, спасибо :)
Автор ответа: vladmor
0
Не за что. И еще одно, счетчик в цикле for изменяется только на 1 , а в цикле while или repeat мы можем изменять приращение значения переменной цикла. Получается, что при использовании например цикла repeat количество итераций для этой задачи будет в 2 раза меньше чем при использовании цикла for. Это не так важно для этой задачи, но при олимпиадном программировании надо учитывать и это.
Похожие вопросы
Предмет: Математика, автор: гульлар