Задача 18 урок 13.1
Primary tabs
http://fkn.ktu10.com/?q=node/8697
Модифицируйте решение предыдущей задачи, так, чтобы длина возрастающего фрагмента каждый раз увеличивалась на единицу (начиная с двух):
8 10 два числа3 10 12 14 три числа3 16 18 20 22 четыре числа 3....3....и т.д.!!ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
Решите всеми тремя способами.
// 1 цикл + деление (mod) program task18_1_lesson13_1; var n, m, i, k, j, c : integer; begin j:=8; //n1 последовательности k:=0; //разность -> n2-n1... readln(n); m:=2; //старт локация "3" c:=0; //счётчик #элемента послед. if n<0 then writeLn ('error') else begin for i:=1 to n do begin write(j + k,' '); k := k + 2; c := c + 1; if ((c mod m) = 0) then Begin write(3, ' '); c := 0; m := m +1; end; end; end; readLn(); end.
Второй способ:
//вложеный цикл program task18_2_lesson13_1; var m, n, i, j, c, k:Integer; begin readLn(n); k:=8; c:=0; i:=1; m:=2; if n < 0 then writeln('error') else begin while i < n do //i-ый член послед. меньше N-ного begin for j:=1 to m do //пишем члены последовательности до "3" begin write(k+c, ' '); i := i + 1; //счет кол-ва элементов послед. c := c + 2; //разность N-ного члена и первого end; write (3, ' '); m := m + 1; //меняю положение "3" -> влияет на цикл FOR end ; readLn(); end ; end.
Третий:
// 1 цикл БЕЗ деления program task18_1_lesson13_1; var n, m, i, k, j, c : integer; begin j := 8; //n1 последовательности k := 0; //разность -> n2-n1... readln(n); i := 0; m := 2; //старт локация "3" c := 0; //счётчик #элемента послед. if (n < 0) then writeLn ('error') else begin repeat i := i + 1; //следующий член последовательности до "3" write(j + k,' '); k := k + 2; c := c + 1; // счетчик кол-ва членов (чтобы не привысить N) if (i = m) then Begin write(3, ' '); i := 0; //обнулили и снова считаем сколько чисел от "3" до "3" m := m +1; end; until (c = n); end; readLn(); end.
- Log in to post comments
- 533 reads