Даны две строки A и B. Определить, можно ли составить строку B, используя только символы из строки A, если при этом можно использовать каждый символ не более одного раза. (питон!!)
Если i больше 0 делаем 1) i:= i(=5) - 1 = 5-1= 4 2) s:= 0+4(получилось в 1 действии)= 4 i больше 0, повторяем процедуру 1) i:= i(=4 из 1-ого решения) - 1 = 4-1= 3 2) s:= 4( из 1-ого решения) +3= 7 И еще раз 1) i:= i(=3 из 2-ого решения) - 1 = 3-1= 2 2) s:= 7( из 2-ого решения) +2= 7 + 2 = 9 Снова 1) i:= i(=2 из 3-ого решения) - 1 = 2-1= 1 2) s:= 9( из 3-ого решения) +1= 9+1 = 10 И еще 1) i:= i(=1 из 4-ого решения) - 1 = 1-1= 0 2) s:= 10( из 4-ого решения) +0= 10+0 = 10 Так как i= 0, а не больше 0, то алгоритм закончен S= 10
Var SurName : Array [1..30] of String; Mark : Array [1..30] of Real; Cand : Array [1..30] of String; NPupil, K : Integer;
BEGIN Write('Сколько всего учеников ? '); ReadLn(NPupil); WriteLn('Введите фамилии и оценки учеников :'); For var i := 1 to NPupil do begin Write(i, '. Фамилия - '); ReadLn(SurName[i]); Write(' Оценка - '); ReadLn(Mark[i]); end; WriteLn; K:=0; For var i := 1 to NPupil do If Mark[i]=2 then begin K:=K+1; Cand[K] := SurName[i] end; If K=0 then WriteLn('В КЛАССЕ НЕТ ДВОЕЧНИКОВ.') else begin WriteLn('ДВОЕЧНИКИ :'); For var i := 1 to K do WriteLn( i, '. ' , Cand[i]); end; END.
1) i:= i(=5) - 1 = 5-1= 4
2) s:= 0+4(получилось в 1 действии)= 4
i больше 0, повторяем процедуру
1) i:= i(=4 из 1-ого решения) - 1 = 4-1= 3
2) s:= 4( из 1-ого решения) +3= 7
И еще раз
1) i:= i(=3 из 2-ого решения) - 1 = 3-1= 2
2) s:= 7( из 2-ого решения) +2= 7 + 2 = 9
Снова
1) i:= i(=2 из 3-ого решения) - 1 = 2-1= 1
2) s:= 9( из 3-ого решения) +1= 9+1 = 10
И еще
1) i:= i(=1 из 4-ого решения) - 1 = 1-1= 0
2) s:= 10( из 4-ого решения) +0= 10+0 = 10
Так как i= 0, а не больше 0, то алгоритм закончен
S= 10
SurName : Array [1..30] of String;
Mark : Array [1..30] of Real;
Cand : Array [1..30] of String;
NPupil, K : Integer;
BEGIN
Write('Сколько всего учеников ? ');
ReadLn(NPupil);
WriteLn('Введите фамилии и оценки учеников :');
For var i := 1 to NPupil do
begin
Write(i, '. Фамилия - ');
ReadLn(SurName[i]);
Write(' Оценка - ');
ReadLn(Mark[i]);
end; WriteLn;
K:=0;
For var i := 1 to NPupil do
If Mark[i]=2 then
begin
K:=K+1;
Cand[K] := SurName[i]
end;
If K=0 then WriteLn('В КЛАССЕ НЕТ ДВОЕЧНИКОВ.')
else
begin
WriteLn('ДВОЕЧНИКИ :');
For var i := 1 to K do WriteLn( i, '. ' , Cand[i]);
end;
END.