Buna! Am nevoie de ajutor la Problema #1174 FListaNumarare2 de pe pbinfo.
Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:
struct nod{
int info;
nod * urm;
};
în care câmpul info memorează un număr natural, iar câmpul urm memorează adresa următorului element al listei.
Cerinţa
Să se scrie o funcție C++ cu următorul prototip:
int numarare(nod * p);
care determina și returnează numărul de perechi de elemente prime între ele din lista pentru care primul element are adresa memorată în pointerul p.
Exemplu
Dacă lista conține valorile (4 7 8 2 9 2 8) funcția va returna valoarea 11. Perechile sunt: (4 7) (4 9) (7 8) (7 2) (7 9) (7 2) (7 8) (8 9) (2 9) (9 2) (9 8).
Important
Soluţia propusă va conţine definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Răspunsuri la întrebare
Răspuns de
7
int numarare(nod *p)
{
int k=0;
while(p->urm)
{
int x=p->info;
nod *q=p->urm;
while(q)
{
int aux=x;
int y=q->info;
while(aux!=y)
if(aux>y)
aux=aux-y;
else
y=y-aux;
if(aux==1)
k++;
q=q->urm;
}
p=p->urm;
}
return k;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Ed. tehnologică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă