Задача 18 Урок 13
Primary tabs
Модифицируйте решение предыдущей задачи, так, чтобы длина возрастающего фрагмента каждый раз увеличивалась на единицу (начиная с двух):
810два числа3101214три числа316182022четыре числа3....3....и т.д.
ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
Решите всеми тремя способами.
program lesson13_18_1; var a, b, i, k: integer; begin repeat writeln('enter even number'); readln(a); if a > 0 then begin i := 8; k := 1; b := 2; while i <= a do begin write(i, ' '); i := i + 2; if (k = b) and (i <= a) then begin write('3 '); k := 1; b := b + 1; end else k := k + 1; end; end else writeln('error'); writeln(); until a <= 0; readln(); end.
program lesson13_18_2; var a, b, i, k: integer; begin repeat writeln('enter even number'); readln(a); if a > 0 then begin i := 8; k := 1; b := 2; while i <= a do begin write(i, ' '); i := i + 2; if (k mod b = 0) and (i <= a) then begin write('3 '); k := 1; b := b + 1; end else k := k + 1; end; end else writeln('error'); writeln(); until a <= 0; readln(); end.
program lesson13_18_3; var a, b, i, j: integer; begin writeln('enter even number'); readln(a); i := 8; b := 2; if a > 0 then while i <= a do begin for j := 1 to b do begin if i > a then break; write(i, ' '); i := i + 2; end; b := b + 1; if i <= a then write('3 '); end else writeln('error'); readln(); end.
- Log in to post comments
- 1002 reads