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

0 голосов
85 просмотров

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


Информатика (17 баллов) | 85 просмотров
Дан 1 ответ
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



(13.9k баллов)
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.

0

Только не for i:=a то b а наверное for i:=a downto b, и в вашем решении учитываются числа a и b, а надо найти числа между ними по условию задачи. Значит a и b не включаются в ответ

0

точно, спасибо :)

0

Не за что. И еще одно, счетчик в цикле for изменяется только на 1 , а в цикле while или repeat мы можем изменять приращение значения переменной цикла. Получается, что при использовании например цикла repeat количество итераций для этой задачи будет в 2 раза меньше чем при использовании цикла for. Это не так важно для этой задачи, но при олимпиадном программировании надо учитывать и это.