#include < iostream>
#include < cstdlib>
#include < ctime>
#include < queue>
template < typename t>
void remove(std: : queue< t> *q)
{
int *a = new int[q-> size()];
int t = 0;
for (int i = 0; i < q-> size(); i++)
{
if (q-> front() < = 0)
{
a[t] = q-> front();
t++;
}
q-> pop();
}
for (int i = 0; i < t; i++)
q-> push(a[i]);
}
int main()
{
srand(time(null));
std: : queue< int> q;
int l;
std: : cin > > l;
for (int i = 0; i < l; i++)
{
//создание очереди
q.push(rand()%21-10);
std: : cout < < q.back() < < ' ';
}
remove(& q);
std: : cout < < std: : endl;
for (int i = 0; i < q.size(); i++)
{
//вывод очереди на экран
std: : cout < < q.front() < < ' ';
q.pop();
}
return 0;
}
Поделитесь своими знаниями, ответьте на вопрос:
по алгоритму евклида:
var a,b: integer;
begin
readln(a,b);
repeat
if a> b then
a: =a mod b
else
b: =b mod a;
until (a=0) or (b=0);
writeln(a+b);
end.
-------------------------
var a,b: integer;
begin
readln(a,b);
while (a< > 0) and (b< > 0) do
if a> b then
a: =a mod b
else
b: =b mod a;
writeln(a+b);
end.