Задача 19 Урок 13.1
Primary tabs
Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N "ёлочкой", например для N=17:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно).
Решите указанными двумя способами.
// вложенные циклы
var N, i, k, S:integer;
begin
i := 1;
k := 1;
write('vvedi chislo N ');
readln(N);
repeat
for S := 1 to k do
begin
if(i <= N) then // чтобы не выходить за предел N
begin
write(i,' ');
i := i + 1;
end;
end;
k := k + 1;
writeln();
if(k = 5) then
k := 1 ;
until(i > N) ;
readln();
end.
// одним циклом
var M, N, k, L:integer;
begin
L := 2; // динамический ограничитель длины фрагмента(изменяется)
k := 2; // длина фрагмента
M := 1; // стартовое число
write('vvedi chislo N ');
readln(N);
repeat
write(M,' ');
M := M + 1;
if((k mod L)=0) then // измененеие длины строки
begin
writeln();
k := 1;
L := L + 1;
end;
if(L > 5) then // предельное ограничнее по ширине
L := 2;
k := k + 1;
until(M > N);
readln();
end.
- Log in to post comments
- 2937 reads
vedro-compota
Tue, 08/03/2021 - 18:47
Permalink
решение одним циклом лучше
решение одним циклом лучше переделать через for, mod() там не требуется
_____________
матфак вгу и остальная классика =)
jl8qy9kd_pro
Fri, 08/06/2021 - 11:26
Permalink
RE
// одним циклом var i, N, k, L:integer; begin k := 0; // счетчик символов в строке L := 1; // длина строки мах write('vvedi chislo N '); readln(N); for i:=1 to N do begin if(k = (L-1)) then begin writeln(i,' '); L := L + 1; k := 0; end else begin write(i,' '); k := k + 1; end end; readln(); end.vedro-compota
Sun, 08/08/2021 - 12:45
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)