Informatică, întrebare adresată de eduardmihailescu26, 8 ani în urmă

Salut. Ma poate ajuta cineva cu aceste 2 probleme de informatica clasa a 12-a? Sunt din teste de antrenament bac 2007 profil real varianta 16 (c++ va rog).

Anexe:

Răspunsuri la întrebare

Răspuns de Konstei
1

1)

#include <iostream>

using namespace std;

int permutare(int k, int n) {

   int inv1=0, inv2=0, cn, cif=0, i, nr=0;

   cn = n;

   while (n) {

       cif++;

       n /= 10;

   }

   n = cn;

   for (i=1; i<=cif-k; i++) {

       inv1 = inv1*10 + n%10;

       n /= 10;

   }

   for (i=1; i<=k; i++) {

       inv2 = inv2*10 + n%10;

       n /= 10;

   }

   for (i=1; i<=cif-k; i++) {

       nr = nr*10 + inv1%10;

       inv1 /= 10;

   }

   for (i=1; i<=k; i++) {

       nr = nr*10 + inv2%10;

       inv2 /= 10;

   }

   return nr;

}

int main()

{

   int k, n;

   cin >> k >> n;

   cout << permutare(k, n);

   return 0;

}

2)

#include <iostream>

using namespace std;

string combine(string a, string b) {

   int i, j;

   string c;

   c = a + b;

   for (i=0; i<c.length()-1; i++) {

       for (j=i+1; j<c.length(); j++) {

           if (c[i] > c[j]) swap(c[i], c[j]);

       }

   }

   return c;

}

int main()

{

   int i;

   string a, b;

   cin >> a >> b;

   cout << combine(a, b);

   return 0;

}


eduardmihailescu26: Daca nu te deranjez, poti putin la prob 2 sa imi explici mai exact ce face functia string combine? Pentru ca e pt prima data cand o intalnesc si nu prea inteleg.
Konstei: sigur, nu-i nici o problema
Konstei: in loc sa scriu codul pentru a combina si sorta cele 2 siruri direct in main, am facut o functie separata, functia combine, care face acelasi lucru, adica combina si sorteaza cele 2 siruri, si am "inclus-o" (inclus nu e tocmai bine spus, ar fi mai bine "folosit-o") in main
eduardmihailescu26: Crezi ca ai putea sa faci si cealalta varianta direct in main? Adica as dori sa am o varianta putin mai apropiata de stilul meu ca nu prea sunt asa avansat in informatica. Asta daca nu te deranjeaza. Daca nu poti, nu-i nicio problema mersi si pt aceasta
Konstei: imediat, sa copiez rezolvarea
Konstei: #include
using namespace std;

int main() {
int i, j;
string a, b, c;
cin >> a >> b;
c = a + b;
for (i=0; i for (j=i+1; j if (c[i] > c[j]) swap(c[i], c[j]);
}
}
cout << c;
return 0;
}
eduardmihailescu26: Mersi mult!!
Konstei: cu placere
andrei750238: La BAC nu prea se accepta rezolvarea problemelor cu tipul string.
Alte întrebări interesante