II.1.d
beolvas n (nem nulla természetes szám)
p <- 1
i <- 1
┌amíg i <= n végezd el
│ beolvas x (természetes szám)
│┌ismételd
││ x <- [x/3]
│└ameddig x≤3
│┌ha x≠0 akkor
││ p <- p*x
│└■
│ i <- i + 1
└■
kiír p
II.3
1
2
3
4
5
6
| for(i=0;i<9;i++)
for(j=0;j<9;j++)
if (i+j < 4 || i+j > 12)
a[i][j] = 4;
else
a[i][j] = 2;
|
III.1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| int majImp(int a, int b)
{
for (int i = a; i <= b; i++) {
int s_paratlan = 0;
int s_paros = 0;
for (int d = 2; d < i; d++)
if (i % d == 0) {
if (d % 2 == 0)
s_paros += d;
else
s_paratlan += d;
}
if (s_paratlan > s_paros)
return i;
}
return 0;
}
|
III.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
| #include <iostream>
#include <cstring>
using namespace std;
int main()
{
char s[101];
cin.getline(s, 101);
char *p = strtok(s, " ");
bool ok = true;
int hossz = strlen(p);
p = strtok(NULL, " ");
while (p != NULL) {
if (strlen(p) != hossz)
ok = false;
p = strtok(NULL, " ");
}
if (ok)
cout << "DA " << hossz << endl;
else
cout << "NU" << endl;
return 0;
}
|
III.3.
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
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be("bac.in");
int elozo,akt;
be>>elozo;
int maximalis=0,aktualis=0,szam=0,joszam=0;
while(be>>akt){
if(akt==elozo+1){
aktualis++;
szam=akt;
}
else{
if(aktualis>maximalis){
maximalis=aktualis;
joszam=szam;
}
aktualis=0;
}
elozo=akt;
}
if(aktualis>maximalis){
maximalis=aktualis;
joszam=szam;
}
if(maximalis==0) cout<<"nu exista";
else{
for(int i=0;i<=maximalis;i++){
cout<<joszam-maximalis<<" ";
joszam++;
}
}
return 0;
}
|
Az algoritmus beolvassa a sorozat elemeit,
követi az aktuális lépcső hosszát (leszámítva
az első elemet). A lépcsőhoszzok közül maximumot
keresünk és megjegyezzük azt, is, hogy melyik
volt az adott lépcső utolsó eleme. A végén
egy ciklussal ki tudjuk írni az összes elemét
a leghosszabb lépcsőnek, mert ismerjük az utolsót
és a hosszát.
Az alg. hatékony idő szempontjából, mert egyszer
halad végig a sorozat elemein, mindegyik esetén
konstans számú lépést végez. Memória szempontjából
azért hatékony, mert nem tárolja a sorozatot,
csak konstans mennyiségű memóriát használ.