David a învățat de curând la școală ce înseamnă o mulțime de numere naturale și ce operații se pot face pe mulțimi. Printre operațiile învățate, lui David i s-au părut interesante operația de reuniune a două mulțimi și operația de intersecție a două mulțimi, așa că el, fiind pasionat de informatică, s-a gândit să implementeze cele două operații pentru două mulțimi. Mulțimile sunt formate din numere consecutive. Prima mulțime este formată din N numere naturale consecutive și începe cu P1, respectiv a doua mulțime este formată din M numere naturale și începe cu P2.
Cunoscând N, P1, M și P2 se cere:
a) Să se afișeze reuniunea celor două mulțimi.
b) Să se afișeze intersecția celor două mulțimi.
Răspunsuri la întrebare
Răspuns de
1
using System;
namespace Operatii_Multimi
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int p1 = int.Parse(Console.ReadLine());
int[] v1 = new int[n];
v1[0] = p1;
for (int i = 1; i < n; i++)
{
v1[i] = v1[i - 1] + 1;
}
int m = int.Parse(Console.ReadLine());
int p2 = int.Parse(Console.ReadLine());
int[] v2 = new int[m];
v2[0] = p2;
for (int i = 1; i < m; i++)
{
v2[i] = v2[i - 1] + 1;
}
////////////////////////////////////////////////////////
Console.WriteLine("Multime 1:");
for (int i = 0; i < n; i++)
{
Console.Write(v1[i]+" ");
}
///////////////////////////////////////////////////////
Console.WriteLine();
///////////////////////////////////////////////////////
Console.WriteLine("Multime 2:");
for (int i = 0; i < m; i++)
{
Console.Write(v2[i] + " ");
}
Console.WriteLine();
///////////////////////////////////////////////////////////////
Console.WriteLine("Intersectie:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (v1[i]==v2[j])
Console.Write(v1[i] + " ");
}
}
Console.WriteLine();
/////////////////////////////////////////////////////////
Console.WriteLine("Reuniune:");
int x = 0;
int y = 0;
while (y < m && x < n)
{
if (v1[x] < v2[y])
{
Console.Write(v1[x] + " ");
x++;
}
else if (v1[x] == v2[y])
{
Console.Write(v1[x] + " ");
x++;
y++;
}
else if (v1[x] > v2[y])
{
Console.Write(v2[y] + " ");
y++;
}
}
if (v1[n-1] > v2[m-1])
{
for (int i = x; i < n; i++)
{
Console.Write(v1[i] + " ");
}
}
else
{
for (int i = y; i < m; i++)
{
Console.Write(v2[i] + " ");
}
}
//////////////////////////////////////////////////////////
Console.ReadKey();
}
}
}
namespace Operatii_Multimi
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int p1 = int.Parse(Console.ReadLine());
int[] v1 = new int[n];
v1[0] = p1;
for (int i = 1; i < n; i++)
{
v1[i] = v1[i - 1] + 1;
}
int m = int.Parse(Console.ReadLine());
int p2 = int.Parse(Console.ReadLine());
int[] v2 = new int[m];
v2[0] = p2;
for (int i = 1; i < m; i++)
{
v2[i] = v2[i - 1] + 1;
}
////////////////////////////////////////////////////////
Console.WriteLine("Multime 1:");
for (int i = 0; i < n; i++)
{
Console.Write(v1[i]+" ");
}
///////////////////////////////////////////////////////
Console.WriteLine();
///////////////////////////////////////////////////////
Console.WriteLine("Multime 2:");
for (int i = 0; i < m; i++)
{
Console.Write(v2[i] + " ");
}
Console.WriteLine();
///////////////////////////////////////////////////////////////
Console.WriteLine("Intersectie:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (v1[i]==v2[j])
Console.Write(v1[i] + " ");
}
}
Console.WriteLine();
/////////////////////////////////////////////////////////
Console.WriteLine("Reuniune:");
int x = 0;
int y = 0;
while (y < m && x < n)
{
if (v1[x] < v2[y])
{
Console.Write(v1[x] + " ");
x++;
}
else if (v1[x] == v2[y])
{
Console.Write(v1[x] + " ");
x++;
y++;
}
else if (v1[x] > v2[y])
{
Console.Write(v2[y] + " ");
y++;
}
}
if (v1[n-1] > v2[m-1])
{
for (int i = x; i < n; i++)
{
Console.Write(v1[i] + " ");
}
}
else
{
for (int i = y; i < m; i++)
{
Console.Write(v2[i] + " ");
}
}
//////////////////////////////////////////////////////////
Console.ReadKey();
}
}
}
Alte întrebări interesante
Fizică,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
multimi2.in
1
3 4 3 5
multimi2.out
4 5 6 7
Explicație
p = 1
Prima mulțime este {4,5,6}, iar a doua {5,6,7}.
Reuniunea celor două mulțimi reprezintă elementele care aparțin cel puțin unei mulțimi.
Atenție! Pentru acest test se rezolvă doar cerința a).
Exemplul 2:
multimi2.in
2
3 4 3 5
multimi2.out
5 6