Prime := { Получаем первое слово из последовательности }; while { не конец последовательности (не известно от куда аффтар получает слова ) } do begin Slovo := { Получаем очередное слово последовательности }; if Length(Slovo) <= Length(Prime) then begin CopyPrime := Prime; N := 1; while (N <= Length(Slovo)) and (Pos(Slovo[N], CopyPrime) > 0 do begin Delete(CopyPrime, Pos(Slovo[N], CopyPrime), 1); Inc(N); end; if N > Length(Slovo) then { Slovo можно получить из первого слова } else { нельзя получить Slovo из первого слова } end; end;
while { не конец последовательности (не известно от куда аффтар получает слова ) } do
begin
Slovo := { Получаем очередное слово последовательности };
if Length(Slovo) <= Length(Prime) then
begin
CopyPrime := Prime;
N := 1;
while (N <= Length(Slovo)) and (Pos(Slovo[N], CopyPrime) > 0 do
begin
Delete(CopyPrime, Pos(Slovo[N], CopyPrime), 1);
Inc(N);
end;
if N > Length(Slovo) then
{ Slovo можно получить из первого слова }
else
{ нельзя получить Slovo из первого слова }
end;
end;
Задача1
массив определи как array[];
чтобы посчитать, просто используй счетчик, но сначала инициализируй переменную, которая содержит ответ задачи:
int n;
array [n];
int answer;
for (i=0, i < n, i++)
{
if (array[i] == 2)
answer++;
}
std::cout<<answer;
Как то так
Задача2
array[n];
for (int i =1, i < n, i++)
{
if (array[0] >= array[i])
array[0] = array[i];
}
std::cout << array[0];
//Это было решение первого пункта
int first;
int last
bool positive;
while (positive == false )
{
for (int i = 0; i < n; i++)
{
if (array[i] > 0)
{
positive = true;
first = i;
array[i] = -1;
}
}
while (positive == false )
{
for (int i = 0, i < n, i++)
{
if (array[i] > 0)
{
positive = true;
last = i;
}
}
int summ
for (int i = first, i < last, i++)
{
summ += array[i];
}
std::cout<<summ; // ответ на 2 пункт
// ПРеобразую
newarray [n];
int a = 0;
for (int i = 0, i < n, i++)
{
if (array[i] == 0)
{
newarray[a] = array[i];
a++;
}
}
for (int i = 0, i < n, i++)
{
if (array[i] != 0)
{
newarray[a] = array[i];
a++;
}
}
std::cout<< newarray;