1. Значения переменных a и b равны a = 4 и b = 6.
Определите, сколько раз выполнится цикл, и чему будут
равны значения этих переменных после его завершения:
а) while a < b:
a += 1
б) while a < b:
a += b
2.Найдите ошибку в программе:
k = 0
while k < 10:
print( "привет" )
Как её можно исправить?
3. Что будет выведено на экран в результате работы следующего цикла?
а) k = 4
while k < 10:
print( k*k, end=" " )
k += 1
б) k = 12
while k > 3:
print( 2*k-1, end=" " )
k -= 1
begin
var s := ReadlnString;
var s1 := s.Where(t -> t in ['0'..'9']).Sorted.GroupBy(t -> t)
.Select(c -> (c.Key, c.Count)).OrderBy(t -> t[0]).ToArray;
var s2 := s1.Where(t -> t[1] > 1).Select(t -> t[0] * (t[1] div 2))
.JoinIntoString('').Replace('0', '');
var s3 := s1.Where(t -> t[1] = 1);
if s3.Count > 0 then s2 := s2 + s3.Select(t -> t[0]).First + s2.Inverse
else s2 := s2 + s2.Inverse;
s2.Println
end.
Примерfor i:=99921 downto 229192program RawTcherv;
function IncPost(var I:integer):integer;
begin
Result:=I;
Inc(I);
end;
// из символов 1...9 из входной строки составить палиндром с минимальным значением
function (const S:string):string;
var
A:array[1..9] of byte;
I,J,Fino,Cur,Center:integer;
begin
FillChar(A{%H-},sizeof(A),0);
// вычисляем количество разных цифр, встреченных во введённой строке
For I:=1 to Length(S) do
if S[I] in ['1'..'9'] then
Inc(A[ord(S[I])-ord('0')])
else
break;
// максимальная длина палиндрома равна длине строки
Cur:=1;
Center:=-1;
SetLength(Result,Length(S));
// составляем палиндром. В начало вставляем половину всех цифр от мин. к макс.
For I:=1 to 9 do begin
// поиск минимального числа, которое можно вставить в центр
if (A[I] mod 2=1) and (Center<0) then
Center:=I;
// вставляем в начало строки половину символов
Fino:=A[I] div 2;
For J:=1 to Fino do
Result[IncPost(Cur)]:=chr(I+ord('0'));
// оставшуюся половину вставим потом
A[I]:=Fino;
end;
// вставляем центральный символ
if Center>0 then
Result[IncPost(Cur)]:=chr(Center+ord('0'));
// вставляем в обратном порядке символы палиндрома
For I:=9 downto 1 do begin
For J:=1 to A[I] do
Result[IncPost(Cur)]:=chr(I+ord('0'));
end;
// восстанавливаем длину строки
SetLength(Result,Cur-1);
end;
procedure Test(const S:string);
var
S1:string;
begin
S1:=(S);
Writeln('Orig=',S);
Writeln('Pal =',S1);
Writeln('Diff=',Length(S)-Length(S1));
Writeln;
end;
begin
Test('9998888776665432111');
Readln;
end.