1.
Adott n elemű sorozat (n < 100). Mennyi az első és utolsó páros elem
között található elemek összege? (Feltéve, hogy van legalább egy páros
elem benne.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be("input.txt");
int t[100];
int n;
be >> n;
for (int i = 0; i < n; i++)
be >> t[i];
//for (int i = 0; i < n; i++)
// cout << t[i] << " ";
int i_elso_paros = -1;
int i_utolso_paros = -1;
for (int i = 0; i < n; i++) {
if (t[i] % 2 == 0) {
i_utolso_paros = i;
if (i_elso_paros == -1)
i_elso_paros = i;
}
}
/*for (int i = n-1; i >= 0; i++) {
if (t[i] % 2 == 0) {
i_elso_paros = i;
}
}*/
// osszeadjuk a köztük levőket
int osszeg = 0;
for (int i = i_elso_paros+1; i <= i_utolso_paros-1; i++)
osszeg = osszeg + t[i];
cout << osszeg << endl;
return 0;
}
|
2.
Adott n elemű sorozat (n < 100). Minden elem esetén írjuk ki, hogy hány
nála kisebb elem található a sorozatban.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be("input.txt");
int t[100];
int n;
be >> n;
for (int i = 0; i < n; i++)
be >> t[i];
for (int i = 0; i < n; i++) {
int db = 0;
// hány olyan van, aki < t[i]?
for(int j = 0; j < n; j++){
if(t[j] < t[i])
db++;
}
cout << t[i] << " elemnel kisebb: " << db << " darab" << endl;
}
return 0;
}
|
3.
Adott n elemű sorozat. Minden elem esetén írjuk ki, hogy hány nála
nagyobb prímszám található a sorozatban.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be("input.txt");
int t[100];
int n;
be >> n;
for (int i = 0; i < n; i++)
be >> t[i];
for (int i = 0; i < n; i++) {
int db = 0;
for(int j = 0; j < n; j++){
if(t[i] < t[j])
{
// t[j] prímszám-e?
int osztok=0;
for(int f = 1; f <= t[j]; f++)
if (t[j] % f == 0)
osztok++;
if(osztok == 2)
db++;
}
}
cout << t[i] << " elemnel nagyobb prim: " << db << " darab" << endl;
}
return 0;
}
|
4.
Adott n elemű sorozat. Gyűjtsük össze egy tömbbe azokat az
elemeket, amelyek prímek, majd írjuk ki ezeket a megjelenésük fordított
sorrendjében.
Példa:
bemenet: 7
1 4 2 6 7 11 7
új tömb: 2 7 11 7
kimenet: 7 11 7 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be("input.txt");
int t[100];
int n;
be >> n;
for (int i = 0; i < n; i++)
be >> t[i];
int primek[100];
int hany_prim = 0;
for (int i = 0; i < n; i++) {
// t[i] prím-e?
int osztok=0;
for(int f = 1; f <= t[i]; f++)
if (t[i] % f == 0)
osztok++;
if(osztok == 2) {
primek[hany_prim] = t[i];
hany_prim++;
}
}
cout << "eredeti sorrendben: ";
for (int i = 0; i < hany_prim; i++)
cout << primek[i] << " ";
cout << endl;
cout << "fordított sorrendben: ";
for (int i = hany_prim - 1; i >= 0; i--)
cout << primek[i] << " ";
cout << endl;
return 0;
}
|
5.
Adott n és az A1, A2, … An pontok korrdinátái (pontonként
két-két valós szám). Írjuk ki annak a két pontnak a sorszámát, amelyek
legközelebb vannak egymáshoz.
Példa bemenetre:
3
1 2
3 4
-2 5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| #include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main()
{
ifstream bemenet("input.txt");
int n;
bemenet >> n;
double x[1000];
double y[1000];
for (int i = 0; i < n; i++)
bemenet >> x[i] >> y[i];
double mintav = -1;
int poz1, poz2;
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
// (x[i],y[i]) (x[j],y[j])
double dx = x[i] - x[j];
double dy = y[i] - y[j];
double tav = sqrt(dx*dx + dy*dy);
//cout << i << " es " << j << " indexu pontok kozott "
// << "a tavolsag: " << tav << endl;
if (mintav == -1 || tav < mintav) {
mintav = tav;
poz1 = i;
poz2 = j;
}
}
}
//cout << mintav << endl;
cout << "a ket, egymashoz legkozelebb levo pont "
<< "(" << x[poz1] << "," << y[poz1] << "), "
<< "(" << x[poz2] << "," << y[poz2] << ")." << endl;
return 0;
}
|
6.
Írjuk ki egy tömb azon elemeit, amelyek többszörösei az utolsó elemnek!
https://www.pbinfo.ro/probleme/546/afisare0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int t[1000];
for (int i = 0; i < n; i++)
cin >> t[i];
for (int i = 0; i < n; i++)
if (t[i] % t[n-1] == 0)
cout << t[i] << " ";
cout << endl;
return 0;
}
|
7.
Adott egy n elemű tömb. Írjuk ki a páros indexen levő elemeket az indexek növekvő sorrendjében, majd
a páratlan indexen levő elemeket az indexek csökkenő sorrendjében! Az elemek 1-től sorszámozottak.
https://www.pbinfo.ro/probleme/488/afisare
8.
Adott egy n elemű tömb. Írjuk ki az elemeit a következő sorrendben: első, utolsó, második,
utolsó előtti stb.
https://www.pbinfo.ro/probleme/489/afisare1
9.
Adott egy n elemű különböző értékeket tartalmazó tömb. Meg kell határozni a legkisebb és
legnagyobb elem (1-től sorszámozott) indexét.
https://www.pbinfo.ro/probleme/553/pozminmax
10.
Adott egy n elemű tömb. Meg kell határozni, hogy hány olyan eleme van, amely egyenlő a legnagyobb
és legkisebb érték közötti különbséggel.
https://www.pbinfo.ro/probleme/547/numarare6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int t[1000];
// beolvassuk az elemek számát egy változóba
int n;
cin >> n;
// beolvassuk a tömb elemeit: t[0], t[1] ... t[n-2], t[n-1]
for (int i = 0; i < n; i++)
cin>>t[i];
// megkeressük a legkisebb és legnagyobb értéket
int kicsi = INT_MAX; // ennél biztos lesz kisebb
int nagy = INT_MIN; // ennél biztos lesz nagyobb
// végigjárunk, ha kell, változtatjuk a kicsit vagy a nagyot
for (int i =0 ; i < n;i++) {
if (t[i] < kicsi)
kicsi = t[i];
if (t[i] > nagy)
nagy = t[i];
}
// itt számoljuk meg, hogy hány megfelelő elem van
int db = 0;
// ez a kettőnek a különbsége
int kulonbseg = nagy - kicsi;
// megint végigmegyünk és ellenőrzünk mindenkit
for (int i = 0; i < n; i++)
if (t[i] == kulonbseg)
db++;
cout << db << endl;
return 0;
}
|
11.
Adott egy n elemű tömb. Meg kell határozni, hogy hány olyan elempár alkotható az elemeiből, amelynek mindkét
tagjában ugyanaz a tízesek számjegye.
https://www.pbinfo.ro/probleme/4380/numarareperechi1