(HF) Készítsünk felhasználói fiókot a pbinfo.ro oldalon.
Itt programozás feladatok vannak, melyek megoldását ha beküldjük,
a rendszer lefuttatja különböző bemenetekre és ellenőrzi, hogy
jó-e a kimenetünk.
(HF) Próba-feladat: https://www.pbinfo.ro/probleme/939/sum00
Két számot kell beolvasni és az összegüket kiírni.
Feladatok pbinfo-ról:
1.
https://www.pbinfo.ro/probleme/3984/afisare-m2
Beolvassuk az a és b természetes számokat, ki kell írni az első b darab pozitív többszörösét a-nak.
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 a, b;
cin >> a >> b;
int i = 1;
while (i <= b) {
cout << a*i << " ";
i = i + 1;
}
cout << endl;
return 0;
}
|
2.
https://www.pbinfo.ro/probleme/330/afisarenumerepare
Beolvasunk egy n-t, ki kell írni az első n darab nem nulla páros számot.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i = 1;
while (i <= n) {
cout << 2 * i << " ";
i = i + 1;
}
cout << endl;
return 0;
}
|
Másképp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i = 1;
while (i <= 2*n) {
if (i % 2 == 0) {
cout << i << " ";
}
i = i + 1;
}
cout << endl;
return 0;
}
|
Még másképp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i = 2;
while (i <= 2*n) {
cout << i << " ";
i = i + 2;
}
cout << endl;
return 0;
}
|
3.
https://www.pbinfo.ro/probleme/348/afisareputeri
Adott n és p esetén ki kell írni az n szám p-nél kisebb vagy egyenlő hatványait.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <iostream>
using namespace std;
int main()
{
int n, p;
cin >> n >> p;
int szam = 1;
while (szam <= p) {
cout << szam << " ";
szam = szam * n;
}
cout << endl;
return 0;
}
|
Ciklusok egymásban
4.
Adott n esetén írjunk ki n x n darab 0-t! Például n = 5-re a kimenet:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int sor = 1;
while (sor <= n) {
int i = 1;
while (i <= n) {
cout << 0 << " ";
i = i + 1;
}
cout << endl;
sor = sor + 1;
}
return 0;
}
|
5.
Adott n esetén írjuk ki az alábbi n x n-es táblázatot (n darab elem minden soron):
1 1 1 ... 1
2 2 2 ... 2
3 3 3 ... 3
.........
n n n ... n
Például n = 4 esetén:
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int sor = 1;
while (sor <= n) {
int i = 1;
while (i <= n) {
cout << sor << " ";
i = i + 1;
}
cout << endl;
sor = sor + 1;
}
return 0;
}
|
6.
https://www.pbinfo.ro/probleme/351/piramida
Adott n-re ki kell írni a leírásban látható háromszöget.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <iostream>
using namespace std;
int main ()
{
int n;
cin >> n;
int sor = 1;
while (sor <= n) {
int i = 1;
while (i <= sor) {
cout << i << " ";
i = i + 1;
}
cout << endl;
sor = sor + 1;
}
return 0;
}
|
Összegek, szorzatok kiszámítása
Példa összeg kiszámítására: adott n-re meghatározzuk az első n darab pozitív egész
szám összegét:
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 osszeg = 0;
int i = 1;
while (i <= n) {
osszeg = osszeg + i;
i = i + 1;
}
cout << osszeg << endl;
cout << n * (n+1) / 2 << endl; // ugyanaz az érték másképp kiszámolva
return 0;
}
|
Más példa:
S = 2 + 4 + 6 + ... + (2*n)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int osszeg = 0;
int i = 2;
while (i <= 2*n) {
osszeg = osszeg + i;
i += 2;
}
cout << osszeg << endl;
cout << (2*n + 2) * n / 2 << endl;
return 0;
}
|
7.
Adott n ≥ 3 esetén írjuk ki az 1*2*3 + 2*3*4 + ... + (n-2)*(n-1)*n összeg értékét!
Ha n < 3, akkor írjunk ki egy hibaüzenetet!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int osszeg = 0;
int i = 1;
while (i <= n-2) {
osszeg = osszeg + i*(i+1)*(i+2);
i++;
}
cout << osszeg << endl;
return 0;
}
|
8.
Adott n esetén számítsuk ki az első n darab teljes köb összegét!
Például n = 3-ra a kimenet 36 (mert 13 + 23 + 33 = 36).
9.
Számítsuk ki az n-nél kisebb négyzetszámok öszegét! Például: n = 20 esetén a válasz legyen 30 (0 + 1 + 4 + 9 + 16).
10.
Számítsuk ki adott n pozitív egész faktoriálisát (n! = 1 * 2 * ... * n).
Például n = 5 esetén a válasz legyen 120 (1*2*3*4*5).
11.
Adott n esetén számítsuk ki az első n darab pozitív egész faktoriálisának összegét!
Például n = 4 esetén a válasz legyen 33 (1+2+6+24).