c++
1. De la tastatura se introduce un numar natural n. Creati o lista unidirectionala ce va contine divizorii acestui numar.
2. De la tastatura se introduc doua numere naturale m si n. Creati o lista unidirectionala ce va contine multiplii numarului m mai mici cu numarul n.
3. De la tastatura se introduce u numar natural n, apoi n numere intregi. Creati o lista unidirectionala ce va contine numerele distincte dintre cele introduse de la tastatura.
4. De la tastatura se introduce un numar natural n, apoi n numere intregi. Creati doua liste unidirectionale, astfel incat una sa contina numerele negative, iar cealalta - numerele nenegative dintre cele n numere introduse de la tastatura.
5. De la tastatura se introduce un numar natural n, apoi n numere intregi. Creati doua liste unidirectionale astfel incat una sa contina numerele pare, iar cealalta - numerele impare dintre cele n numere introduse de la tastatura.
Răspunsuri la întrebare
#include <iostream>
using namespace std;
struct Nod {
int value;
Nod* next;
};
Nod* cap = NULL;
void afisareLista(Nod* cap) {
while (cap != NULL)
{
cout << cap->value << " ";
cap = cap->next;
}
}
void inserareInceput(Nod*& cap, int valoare)
{
Nod* p = new Nod;
// Construim noul nod
p->value = valoare;
p->next = cap;
cap = p;
}
int main()
{
// Problema 1
/*int n;
cin >> n;
for (int d = 1; d <= n; d++)
{
if (n % d == 0)
{
inserareInceput(cap, d);
}
}
afisareLista(cap);*/
// Problema 2
/*int m, n;
cin >> m >> n;
for (int i = 0; i * m < n; i++)
{
inserareInceput(cap, i * m);
}
afisareLista(cap);*/
// Problema 3
/*int n, numar;
int maiExista;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> numar;
maiExista = 0;
Nod* temp = cap;
while (temp != NULL)
{
if (numar == temp->value)
{
maiExista = 1;
break;
}
temp = temp->next;
}
if (!maiExista)
{
inserareInceput(cap, numar);
}
}
afisareLista(cap);*/
// Problema 4
/*int n, numar;
cin >> n;
Nod* capNegative = NULL;
Nod* capNenegative = NULL;
for (int i = 1; i <= n; i++)
{
cin >> numar;
if (numar < 0)
{
inserareInceput(capNegative, numar);
}
else
{
inserareInceput(capNenegative, numar);
}
}
afisareLista(capNegative);
cout << "\n";
afisareLista(capNenegative);*/
// Problema 5
/*int n, numar;
cin >> n;
Nod* capPare = NULL;
Nod* capImpare = NULL;
for (int i = 1; i <= n; i++)
{
cin >> numar;
if (numar % 2 == 0)
{
inserareInceput(capPare, numar);
}
else
{
inserareInceput(capImpare, numar);
}
}
afisareLista(capPare);
cout << "\n";
afisareLista(capImpare);*/
}