Megoldások - 2025. simulare

II.1

a)

    m: 20 25
    n: 25 45 20
    k:          25 24  23 22 21  20 19  18  17 16
    i:             25  24    23  22     21  20

    KIMENET: 25 24 *22 21 *19 18 *

b)

    m: 5
    n: 3
    k:   5  4  3 2  1
    i:   5     4    3

    KIMENET: 5 4 *2


    5-nél nagyobb?

    m: 5 ... 10
    n: 10 ... 5
    k:          10  8  7  5  4  2  1
    i:             10  9  8  7  6  5

    KIMENET:  10 *8 7 *5 4 *2

c)

 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>
using namespace std;

int main()
{
    int m, n;

    cin >> m >> n;

    if (m<n)
    {
        n=n+m;
        m=n-m;
        n=n-m;
    }

    int k = m;

    for (int i=m; i>=n; i-=1)
    {
        cout << k << " ";

        if (i%2 == 0)
        {
            k = k-1;
            cout << "*";
        }
        k = k-1;
    }
    return 0;
}

d)

Eredeti:
    citește m,n (numere naturale)
    ┌dacă m<n atunci
    │ n<-n+m
    │ m<-n-m
    │ n<-n-m
    └■
    k<-m
    ┌pentru i<-m,n,-1 execută
    │ scrie k, ' '
    │┌dacă i%2=0 atunci
    ││ k<-k-1
    ││ scrie '*'
    │└■
    │ k<-k-1
    └■

Átírva:

    citește m,n (numere naturale)
    ┌dacă m<n atunci
    │ n<-n+m
    │ m<-n-m
    │ n<-n-m
    └■
    k<-m
    i<-m
    ┌cât timp i>=n execută
    │ scrie k, ' '
    │┌dacă i%2=0 atunci
    ││ k<-k-1
    ││ scrie '*'
    │└■
    │ k<-k-1
    │ i<-i-1
    └■

II.3.

1
2
3
4
5
6
7
8
struct specialist
{
    int anAngajare;
    struct {
        char CNP[14];
        int anNastere;
    } personal;
} s[30];

III.1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
void harsad (int k, int &n)
{
    for (int i = k; i >= 1; i--)
    {
        int szam = i;
        int s = 0;
        while (szam > 0)
        {

            s = s+szam%10;
            szam = szam/10;
        }

        if (i%s == 0) {
            n = i;
            return;
        }
    }
}

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <cstring>
using namespace std;

int hany_mgh(char str[])
{
    int db = 0;

    for (int i = 0; str[i] != '\0'; i++)
        if (strchr("aeiou", str[i])!=NULL)
            db++;

    return db;
}


int main()
{
    int n;
    cin >> n;

    char szavak[100][21];

    /*
    cin.get(); // megesszük "\n"-t a getline miatt
    for (int i = 0; i < n; i++)
        cin.getline(szavak[i], 21);
    */

    for (int i = 0; i < n; i++)
        cin >> szavak[i];

    int hany_mgh_utolso = hany_mgh(szavak[n-1]);
    bool van = false;

    for (int i = 0; i < n; i++)
        if (hany_mgh(szavak[i]) == hany_mgh_utolso
            && strcmp(szavak[i], szavak[n-1]) != 0)
        {
            cout << szavak[i] << " ";
            van = true;
        }

    if (!van)
        cout << "nu exista";

    cout << 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int frekv1[100]= {};
    int frekv2[100]= {};
    ifstream fin("bijuterii.in");
    int nc;
    int np;
    fin>>nc;
    fin>>np;

    for (int i=1; i<= nc; i++)
    {
        int a;
        fin>>a;

        while (a>99)
            a=a/10;

        frekv1[a]++;
        int aa=a%10*10+a/10;
        frekv1 [aa]++;
    }

    for (int i=1; i<=np; i++)
    {
        int a;
        fin>>a;

        while (a>99)
            a=a/10;

        frekv2[a]++;
        int aa=a%10*10+a/10;
        frekv2[aa]++;
    }

    bool van = false;

    for (int i=10; i<100 && !van; i++)
    {
        if (frekv1[i]>0 && frekv2[i]>0)
        {
            van=true;
            cout<<"DA" ;
        }
    }

    if (van==false)
        cout<<"NU";

    return 0;
}

/*
    A program beolvassa a számokat és egy frekvencia-
    tömbben számolja, hogy a számok első két számjegyéből
    alkotott értékek és azoknak a fordítottja hányszor
    jelenik meg. Ezt külön-külön elvégezzük mindkét
    sorozatra. Majd megnézzük, hogy van-e olyan érték
    10 és 99 között, amelyikhez mindkét frekvenciatömbben
    nem nulla gyakoriság rendelődik, és kiírja a megfelelő
    üzenetet.

    A program idő szempontjából azért hatékony, mert
    csak egyszer halad végig a sorozatok elemein,
    mindegyikre konstans számú lépést végez.
*/